codevs 2956 排队问题
#include<cstdio> long long dp[160]={0,0,1,1}; int n; int main() { scanf("%d",&n); for(int i=4;i<=n;i++) dp[i]=dp[i-2]+dp[i-3]; printf("%lld\n",dp[n]); return 0; }
poj Ancient Cipher
#include<cstdio> #include<algorithm> char a[110],b[110]; int ca[27],cb[27]; int main(){ scanf("%s%s",a,b); for(int i=0;a[i];i++){ ca[a[i]-'A']++; cb[b[i]-'A']++; } std::sort(ca,ca+27); std::sort(cb,cb+27); int ok=1; for(int i=0;i<27&&ok;i++) if(ca[i]!=cb[i])ok=0; if(ok)printf("YES\n"); else printf("NO\n"); return 0; }
uva 253 - Cube painting
#include<cstdio> #include<cstring> #include<set> #include<string> using namespace std; set<string>vis; string temp; char s[10],t[10],buf[20],ts[10],c; void dfs(char *str){ temp.assign(str); if(vis.count(temp)!=0)return ; vis.insert(temp); strcpy(ts,str); c=ts[4];ts[4]=ts[5];ts[5]=ts[1];ts[1]=ts[0];ts[0]=c; dfs(ts); strcpy(ts,str); c=ts[3];ts[3]=ts[5];ts[5]=ts[2];ts[2]=ts[0];ts[0]=c; dfs(ts); strcpy(ts,str); c=ts[2];ts[2]=ts[4];ts[4]=ts[3];ts[3]=ts[1];ts[1]=c; dfs(ts); } int main() { while(scanf("%s",buf)!=-1){ vis.clear(); strncpy(s,buf,6);strncpy(t,buf+6,6); dfs(s); temp.assign(t); if(vis.count(t))printf("TRUE"); else printf("FALSE"); printf("\n"); } return 0; }