#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
#define ll long long
using namespace std;
inline int read(){
int x=0,o=1;char ch=getchar();
while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();
if(ch=='-')o=-1,ch=getchar();
while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
return x*o;
}
char ch[15],word[10005];
map<char,int>Map;
inline bool check(int len){
for(int i=0;i<len;i++)
if(Map[word[i]]!=(ch[i]-'0'))return false;
return true;
}
int main(){
Map['A']=2;Map['B']=2;Map['C']=2;
Map['D']=3;Map['E']=3;Map['F']=3;
Map['G']=4;Map['H']=4;Map['I']=4;
Map['J']=5;Map['K']=5;Map['L']=5;
Map['M']=6;Map['N']=6;Map['O']=6;
Map['P']=7;Map['R']=7;Map['S']=7;
Map['T']=8;Map['U']=8;Map['V']=8;
Map['W']=9;Map['X']=9;Map['Y']=9;
scanf("%s",ch);int len=strlen(ch),bj=0;
while(scanf("%s",word)!=EOF){
int lenn=strlen(word);
if(len!=lenn)continue;
if(check(len))printf("%s\n",word),bj=1;
}
if(!bj)puts("NONE");
return 0;
}
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
#define ll long long
using namespace std;
inline int read(){
int x=0,o=1;char ch=getchar();
while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();
if(ch=='-')o=-1,ch=getchar();
while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
return x*o;
}
const int N=5005;
struct ppx{int l,r;}a[N];
inline bool cmp(ppx x,ppx y){return x.l<y.l;}
int main(){
int n=read();
for(int i=1;i<=n;++i){a[i].l=read();a[i].r=read();}
sort(a+1,a+n+1,cmp);
int ans1=a[1].r-a[1].l,cnt1=a[1].r-a[1].l,ans2=0,cnt2=0,last=a[1].r;
for(int i=2;i<=n;++i){
if(a[i].l<=last){
ans2=max(cnt2,ans2);cnt2=0;
if(a[i].r-last>=0){
cnt1+=a[i].r-last;
last=a[i].r;
}
}
else{
ans1=max(cnt1,ans1);cnt1=0;
ans2=max(cnt2,ans2);cnt2=0;
cnt1=a[i].r-a[i].l;
cnt2=a[i].l-last;
last=a[i].r;
}
}
ans1=max(cnt1,ans1);ans2=max(cnt2,ans2);//最后可能没更新上去
printf("%d %d\n",ans1,ans2);
return 0;
}
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
#define ll long long
using namespace std;
inline int read(){
int x=0,o=1;char ch=getchar();
while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();
if(ch=='-')o=-1,ch=getchar();
while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
return x*o;
}
char a[15][15],b[15][15],c[15][15],d[15][15];
inline bool check(int k,int n){
if(k==1){
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j){
c[i][j]=a[n+1-j][i];
if(c[i][j]!=b[i][j])return false;
}
return true;
}
if(k==2){
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j){
c[i][j]=a[n+1-i][n+1-j];
if(c[i][j]!=b[i][j])return false;
}
return true;
}
if(k==3){
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j){
c[i][j]=a[n+1-j][j];
if(c[i][j]!=b[i][j])return false;
}
return true;
}
if(k==4){
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j){
c[i][j]=a[i][n+1-j];
if(c[i][j]!=b[i][j])return false;
}
return true;
}
if(k==5){
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
c[i][j]=a[i][n+1-j];
int bj=1;
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j){
d[i][j]=c[n+1-j][i];
if(d[i][j]!=b[i][j]){bj=0;break;}
}
if(bj)return true;
bj=1;memset(d,0,sizeof(d));
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j){
d[i][j]=c[n+1-i][n+1-j];
if(d[i][j]!=b[i][j]){bj=0;break;}
}
if(bj)return true;
bj=1;memset(d,0,sizeof(d));
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j){
d[i][j]=c[n+1-j][j];
if(d[i][j]!=b[i][j]){bj=0;break;}
}
if(bj)return true;
return false;
}
if(k==6){
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j){
c[i][j]=a[i][j];
if(c[i][j]!=b[i][j])return false;
}
return true;
}
}
int main(){
int n=read();
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
cin>>a[i][j];
for(int i=1;i<=n;++i)
for(int j=1;j<=n;++j)
cin>>b[i][j];
for(int i=1;i<=6;++i)
if(check(i,n)){
printf("%d\n",i);
return 0;
}
puts("7");
return 0;
}
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
#define ll long long
using namespace std;
inline int read(){
int x=0,o=1;char ch=getchar();
while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();
if(ch=='-')o=-1,ch=getchar();
while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
return x*o;
}
int a[1005],b[1005];
char c[105]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F','G','H','I','J','K','L'};
inline void solve(int m,int n){
int tot=0,bj=1,cnt=m*m;
while(cnt){a[++tot]=cnt%n;cnt/=n;}
for(int i=1;i<=tot/2;++i)
if(a[tot+1-i]!=a[i]){
bj=0;break;
}
if(bj){
int tot1=0;
while(m){b[++tot1]=m%n;m/=n;}
for(int i=tot1;i>=1;--i)printf("%c",c[b[i]]);
printf(" ");
for(int i=1;i<=tot;++i)printf("%c",c[a[i]]);
printf("\n");
}
return;
}
int main(){
int n=read();
for(int i=1;i<=300;++i)solve(i,n);
return 0;
}
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cmath>
#include<queue>
#include<map>
#define ll long long
using namespace std;
inline int read(){
int x=0,o=1;char ch=getchar();
while(ch!='-'&&(ch<'0'||ch>'9'))ch=getchar();
if(ch=='-')o=-1,ch=getchar();
while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();
return x*o;
}
int a[10005];
inline bool check(int x,int y){
int tot=0;
while(x){
a[++tot]=x%y;
x/=y;
}
for(int i=1;i<=tot/2;++i)
if(a[i]!=a[tot+1-i])return false;
return true;
}
int main(){
int n=read(),m=read();
for(int i=m+1;;++i){
int cnt=0;
for(int j=2;j<=10;++j){
if(check(i,j))++cnt;
if(cnt>=2)break;
}
if(cnt>=2){
printf("%d\n",i);
--n;
}
if(!n)break;
}
return 0;
}
原文:https://www.cnblogs.com/PPXppx/p/11262781.html