⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1009.cpp

📁 ZOJ 动态规划算法题目入门与提高 源代码
💻 CPP
字号:
#include<iostream>
#include<fstream>
#include<vector>
#include<string>
using namespace std;
int index(int i,int n){
    while(i>=n) i-=n;
	while(i<0 ) i+=n;
	return i;
}
int main(){
	//ifstream cin("1009.txt");
    int n,k,i,j,l,t,b,casenum=1;
	char c;
	string s;
	while(cin>>n&&n){
		if(casenum>1) cout<<endl;
		cout<<"Enigma "<<casenum++<<":\n";
        vector<int> r1(n),r2(n),r3(n);
		for(i=0;i<n;i++){
            cin>>c;
			r1[i]=(c-'A'-i);
			//cout<<r1[i]<<" ";
		}
		//cout<<endl;
		for(i=0;i<n;i++){
            cin>>c;
			r2[i]=(c-'A'-i);
			//cout<<r2[i]<<" ";
		}
		//cout<<endl;
		for(i=0;i<n;i++){
            cin>>c;
			r3[i]=(c-'A'-i);
			//cout<<r3[i]<<" ";
		}
		//cout<<endl;
		cin>>l;
		for(j=0;j<l;j++){
            cin>>s;
			int i1=0,i2=0,i3=0;
			for(i=0;i<s.length();i++){
               t=s[i]-'A';
               //t+=r3[index(t-i3,n)];
               //t+=r2[index(t-i2,n)];
			   //t+=r1[index(t-i1,n)];
			   //t=index(t,n);
			   for(b=0;b<n;b++){
				  int q=b;
                  q+=r1[index(q-i1,n)];
				  q=index(q,n);
                  q+=r2[index(q-i2,n)];
				  q=index(q,n);
                  q+=r3[index(q-i3,n)];
				  q=index(q,n);
				  if(q==t) break;
			   }
			   c=char('a'+b);
			   cout<<c;
			   i1+=1;
			   if(i1==n){i1=0;i2++;}
			   if(i2==n){i2=0;i3++;}
			   if(i3==n){i3=0;}
			}
			cout<<endl;
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -