1 延长数
3.12 1647A

点击查看代码
int t;
int a,cnt=0,i;
//尝试你应该报名参加比赛×能够屈服 1
//找出十进制数中最大的且不含0的相同数字不相临的数 a最大 1000
//很明显答案只能由不相临重复的1,2 构成(其他的会减少位数)
/*
因为2 和 1 的个数只能差一个
1
2
21
121 4
212 5
2121 6
12121 7 很明显奇数 1开头 增长位数
21212 8
212121 9
1212121 10
2121212 11
21212121 12
121212121 13
1: 后加(n/3)个21 2: 加(n/3)个12 3:21后+(n/3) 21
*/
cin>>t;
while(t--){
cin>>a;
if(a%3==1){
cout<<"1";
for(i=1;i<=(a-1)/3;i++) cout<<"21";
cout<<endl;
}
else if(a%3==2){
cout<<"2";
for(i=1;i<=(a-2)/3;i++) cout<<"12";
cout<<endl;
}
else {
cout<<"21";
for(i=1;i<=(a-3)/3;i++) cout<<"21";
cout<<endl;
}
}
给定个数、和 求最大平方个数
3.15 1646A
评价:题目描述的太复杂了 当时还想着n+1
点击查看代码
int t;
cin>>t;
while(t--){
long long n,s;
cin>>n>>s;
cout<<s/(n*n)<<endl;
//知n数字数 s和 求n^2的个数 [0,n) n+1数序列
}
给n 问下标几赢 (2^n-1)
3.15 1651A
点击查看代码
//读题简化 知 给n 问下标几赢
//比赛时,若和为奇数 下标小赢 反之 下标大的赢
//看看有规律没 或直接模拟 只有30 (刚好int范围)
// 2 是3赢 4是15赢 观察图显然可知
int t,a[32]={1,3,7,15},k=2,i;
for(i=1;i<=30;i++){
a[i]=k-1;
k*=2;
}
cin>>t;
while(t--){
int n;
cin>>n;
cout<<a[n]<<endl;
}