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

📄 1386.cpp

📁 ZOJ 动态规划算法题目入门与提高 源代码
💻 CPP
字号:
#include<vector>
#include<iostream>
#include<fstream>
#include<string>
#include<algorithm>
using namespace std;
vector<string> vecd,vecm;
void init(){
vecd.resize(20); vecm.resize(19);
vecd[0]="Imix";
vecd[1]="Ik";
vecd[2]="Akbal";
vecd[3]="Kan";
vecd[4]="Chikchan";
vecd[5]="Kimi";
vecd[6]="Manik";
vecd[7]="Lamat";
vecd[8]="Muluk";
vecd[9]="Ok";
vecd[10]="Chuen";
vecd[11]="Eb";
vecd[12]="Ben";
vecd[13]="Ix";
vecd[14]="Men";
vecd[15]="Kib";
vecd[16]="Kaban";
vecd[17]="Etznab";
vecd[18]="Kawak";
vecd[19]="Ajaw";
vecm[0]="Pohp";
vecm[1]="Wo";
vecm[2]="Sip";
vecm[3]="Zotz";
vecm[4]="Sek";
vecm[5]="Xul";
vecm[6]="Yaxkin";
vecm[7]="Mol";
vecm[8]="Chen";
vecm[9]="Yax";
vecm[10]="Sak";
vecm[11]="Keh";
vecm[12]="Mak";
vecm[13]="Kankin";
vecm[14]="Muan";
vecm[15]="Pax";
vecm[16]="Kayab";
vecm[17]="Kumku";
vecm[18]="Wayeb";
}
const int gap=18980;
int main(){
    //ifstream cin("in.txt");
    init();
	string s1,s2;
	int i,j,k,l,n,n1,n2;
	cin>>n;
	for(l=0;l<n;l++){
       cin>>n1>>s1>>n2>>s2;
       if(n1<1||n1>13||find(vecd.begin(),vecd.end(),s1)==vecd.end()) {cout<<"0\n";continue;} //第一个合法性判断
	   if(n2<1||n2>20||find(vecm.begin(),vecm.end(),s2)==vecm.end()||(s2==vecm.back()&&n2>5)) {cout<<"0\n";continue;} //第二个合法性判断
	   //cout<<n1<<s1<<n2<<s2<<endl;
	   int begin1=9,begin2=19,begin3=3,begin4=2;
	   for(i=0;i<2*144000;i++){
		   //cout<<i<<endl;
		   //if(i==6468) cout<<begin1<<" "<<vecd[begin2]<<" "<<begin3<<" "<<vecm[begin4]<<endl;
           if(begin1==n1){
			   if(vecd[begin2]==s1){
				   //cout<<"1"<<endl;
				   if(begin3==n2)
					   if(vecm[begin4]==s2){
			               //cout<<"2"<<endl;
						   break;
					   }
			   }
		   }
           begin1+=1;
		   if(begin1==14) begin1=1;
           begin2+=1;
		   if(begin2==20) begin2=0;
		   begin3+=1;
		   if(begin3==21||(begin4==18&&begin3==6)){
		      begin3=1;
              begin4+=1;		      
		   }
		   if(begin4==19) begin4=0;
	   }
	   vector<int> res;
	   for(j=8*144000+i;j<10*144000;j+=gap) res.push_back(j);
	   cout<<res.size()<<endl;
	   for(i=0;i<res.size();i++){
          cout<<res[i]/144000<<"."<<(res[i]%144000)/7200<<"."<<(res[i]%7200)/360<<"."<<(res[i]%360)/20<<"."<<res[i]%20<<endl;
	   }
	}
	//8.0.0.0.0 fell on the Calendar Round 9 Ajaw 3 Sip
}

⌨️ 快捷键说明

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