CSDN第24期周赛(记录一下)
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
每一道题都有思路可是只有一道Accepted100%一道很简单的50%一道输出错误10%并报错Segmentation Fault一道字符串有思路但是没时间了
一蛇皮矩阵 Accepted 10%
报错Segmentation Fault
可能是每行后,多输出了空格
#include<iostream>
using namespace std;
int a[110][110];
int main()
{
a[0][0] = 1;
int n;
cin>>n;
int row = 0, col = 0, m = 1;
//到达最后一行前
while(1) {
//向右
a[row][++col] = ++m;
//左下
while(col)
a[++row][--col] = ++m;
//向下
a[++row][col] = ++m;
//右上
while(row)
a[--row][++col] = ++m;
if(row == n - 1)
break;
}
//到达最后一行后开始右下部分输出
while(!a[n - 1][n - 1]) {
//向右
a[row][++col] = ++m;
//右上
if(col != n - 1)
a[--row][++col] = ++m;
//向下
a[++row][col] = ++m;
//左下
if(row != n - 1)
a[++row][--col] = ++m;
}
for(int i = 0; i < n; ++i) {
for(int j = 0; j < n; ++j)
cout<<a[i][j]<<" ";
cout<<endl;
}
return 0;
}
二货车司机 Accepted 50%
这题真的非常简单1分钟找思路2分钟敲出来后悔没有回去仔细想想
每辆货车装K件货物共有N件货物问需要多少量车但司机有个怪癖不喜欢13这个数字就是每辆货车装的货物不能是13
第10行犯了个低级错误,把N / 12 改成 N / 13就好了
#include<iostream>
using namespace std;
int main()
{
int N, K, ans = 0;
while(cin>>N>>K) {
if(N == 13)
ans = max(N / K + 1, 2);
if(K == 13)
ans = N / 12 + 1;
if(N != 13 && K != 13)
ans = N / K + 1;
cout<<ans<<endl;
}
return 0;
}
三求1 ~ n出现多少次x Accepted 100%
#include<iostream>
using namespace std;
int main()
{
int n, x;
cin>>n>>x;
int ans = 0;
for(int i = 1; i <= n; ++i) {
int k = i;
if(k == x)
ans++;
while(k / 10 != 0) {
if(k % 10 == x)
ans++;
k /= 10;
if(k == x)
ans++;
}
}
cout<<ans<<endl;
return 0;
}
11 1
4
四字符串 Accepted 0%
输入k和一串字符串
1字符串包括已知部分和未知部分未知部分用?代替
2k表示字符串只能有前k个小写字母
3且每个字母最少出现一次
4必须为回文串
4回文串写个bool回文函数就好
2前k用a[i] - 'a' + 1 >= 1 && a[i] - 'a' + 1 <= k
3只能出现一次用b[i]标记出现过的字母
1这个的判断还没想清楚。。
总结
慢慢学会一题多解,一道题以前会了,可换种思路或者加点细节要求呢,还有就是细心
好歹一次有一次的进步等再熟练点就不止在CSDN的比赛练手了
先学完《啊哈算法》发育到4级
再在CSDN参加周赛每次起码75分以上发育到装备出完
期间打打野对着算法标签去各种网站刷简单题
最后带线摧毁敌方防御塔(蓝桥杯省二)