2016"百度之星" - 测试赛(热身,陈题)&& 列变
发布时间:2020-12-14 02:14:09 所属栏目:百科 来源:网络整理
导读:第一题还没看懂题意:等以后懂了再补吧。 列变位法解密 Accepts: 395 Submissions: 1308 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Problem Description 列变位法是古典密码算法中变位加密的一种方法,具体过程如
第一题还没看懂题意:等以后懂了再补吧。 列变位法解密
Accepts: 395
Submissions: 1308
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
有vector记录即可 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<algorithm> #include<cmath> #include<queue> #include<list> #include<vector> using namespace std; const int maxn=100010; char str[maxn]; vector<char>vec[maxn]; int main() { int t,i,j,k,test=1; scanf("%d",&t); while(t--){getchar(); gets(str); scanf("%d",&k); int len=strlen(str); int col=len/k;if(len%k)col++; for(i=0;i<col;++i)vec[i].clear(); int col1=col; int cnt=0,num=len%k; for(i=0;i<len;i+=col){ if(cnt>=num&&num){ col--;num=maxn; } for(j=i;j<i+col&&j<len;++j){ vec[j-i].push_back(str[j]); } cnt++; } printf("Case #%d:n",test++); for(i=0;i<col1;++i){ for(j=0;j<vec[i].size();++j){ printf("%c",vec[i][j]); } } printf("n"); } return 0; } IP聚合
Accepts: 410
Submissions: 1037
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
用map记录即可 #include<iostream> #include<cstdio> #include<cstdlib> #include<cstring> #include<algorithm> #include<cmath> #include<queue> #include<list> #include<vector> #include<map> using namespace std; map<__int64,bool>M; struct Node{ __int64 a,b,c,d; }A[1010]; int main() { int t,&t); while(t--){ int n,m; scanf("%d%d",&n,&m); for(i=0;i<n;++i){ scanf("%I64d.%I64d.%I64d.%I64d",&A[i].a,&A[i].b,&A[i].c,&A[i].d); } __int64 AA,D,ans; printf("Case #%d:n",test++); for(i=0;i<m;++i){ scanf("%I64d.%I64d.%I64d.%I64d",&AA,&B,&C,&D); M.clear();ans=0; for(j=0;j<n;++j){ __int64 aa=AA&A[j].a,bb=B&A[j].b,cc=C&A[j].c,dd=D&A[j].d; if(!M.count(aa*300*300*300+bb*300*300+cc*300+dd)){ ans++;M[aa*300*300*300+bb*300*300+cc*300+dd]=true; } } printf("%I64dn",ans); } } return 0; } 放盘子
Accepts: 339
Submissions: 858
Time Limit: 2000/1000 MS (Java/Others)
Memory Limit: 65536/65536 K (Java/Others)
#include<iostream> #include<cstdio> #include<cstdlib> #include<algorithm> #include<cmath> #include<queue> #include<list> #include<vector> #define PI acos(-1.0) #define eps 1e-6 using namespace std; int main() { int t,test=1; double n,r; scanf("%d",&t); while(t--){ scanf("%lf%lf%lf",&a,&r); printf("Case #%d:n",test++); double angle1=(2.0*PI/n); double d=(a/2.0)/tan(angle1/2); if(d-r<eps){ printf("I want to kiss you!n"); //printf("Give me a kiss!n"); } else { if(d-3.0*r>eps||d-r>eps){ printf("Give me a kiss!n"); } else { printf("I want to kiss you!n"); } } } return 0; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |