试题链接 https://ks.wjx.top/jq/92546297.aspx

阅读一

#include <bits/stdc++.h>
using namespace std;int main() {string s;char s1[100];int len, j = 0;cin >> s;len = s.size();//将 s1 数组清空 memset(s1, 0, sizeof(s1));     for (int i = 0; i < len; i ++) {if (i % 2 == 0)if ((s[i] >= 'A' && s[i] < 'Z') || (s[i] >= 'a' && s[i] < 'z')) {s1[j] = s[i] + 1;++ j;}}cout << s1 << endl;return 0;
}/*
T:  程序限定了,s1 字符串里只能有'B'~'Z',或者'b'~'z'
F:  'Z'和'z'后面的字符是标点符号
F:  如果不对 s1 清零,输出时可能有多余字符
F:  不一定,要看第 12 行的条件是否满足 B:   最多为原长度的一半
B:  'A'~'Y'右移一位不可能出现字母'A',同理不可能出现字母'a' */

阅读二

#include <bits/stdc++.h>
using namespace std;int main() {int a[1001], i, j, t, n;for (i = 0; i <= 1000; i ++) a[i] = 0;scanf("%d", &n);for (i = 1; i <= n; i ++) {scanf("%d", &t);a[t] ++;}//从后往前遍历 for (i = 1000; i >= 0; i --) //数字 i 出现了几次,就输出几次 for (j = 1; j <= a[i]; j ++)printf("%d ", i);return 0;
}/*
这个代码是计数排序 F:    应该是从大到小输出
F:  其实是看不出来谁先谁后的
T:  改成 < 后,输出的数量比实际数量少 1
F:  这样就变成了从小到大输出C:  j > 1,因此输出数量也是比实际数量少 1;输入数据中没有重复的数字
D:  ++a[t]和a[t]++在这里没有区别;a[t++]只是变量 t 增加,a 数组的值没有发生变化 */

阅读三

#include <bits/stdc++.h>
using namespace std;const int maxn = 500000, INF = 0x3f3f3f3f;
int L[maxn/2+2], R[maxn/2+2];void unknown(int a[], int n, int left, int mid, int right) {//举例:left=2, mid=3, right=4 int n1 = mid - left, n2 = right - mid;//将a[2]放到 L 数组 for (int i = 0; i < n1; i ++)L[i] = a[left + i];//将a[3]放到 R 数组 for (int i = 0; i < n2; i ++)R[i] = a[mid + i];L[n1] = R[n2] = INF;int i = 0, j = 0;//注意看,合并后的 a 数组里只有 a[2]和 a[3] for (int k = left; k < right; k ++) { if (L[i] <= R[j])a[k] = L[i ++];else a[k] = R[j ++];}
}//要排序的数是从 a[left] ~ a[right-1]
void unknownsort(int a[], int n, int left, int right) {//举例:left=2, right=4, mid=3 if (left + 1 < right) {    int mid = (left + right) / 2;//左边一组: (a,n,2,3),实际上只有a[2] unknownsort(a, n, left, mid);//右边一组: (a,n,3,4),实际上只有a[3]unknownsort(a, n, mid, right);//参数是(a,n,2,3,4),实际上只将a[2]和a[3]合并unknown(a, n, left, mid, right);}
}int main() {int a[maxn], n;cin >> n;//输入从 a[0] ~ a[n-1] for (int i = 0; i < n; i ++) cin >> a[i];unknownsort(a, n, 0, n);                    for (int i = 0; i < n; i ++) {if (i) cout << " ";cout << a[i];}cout << endl;return 0;
}/*
F:  修改之后,a 数组末尾会多出一个数字
F:  修改前:left=2 right=3就不再分解了,开始归并修改后:left=2 right=3,mid=2;再分解一次,有一组还是left=2,right=3,不断循环,最后栈溢出
F:  归并时间复杂度低,且稳定
T:  不会越界C   归并
B   分治
*/

完善一

#include <bits/stdc++.h>
using namespace std;int main() {int n;while (cin >> n && n != 0) {int tj[1001], king[1001], count = 0;int tj_min = 0, tj_max = n - 1;int king_min = 0, king_max = n - 1;for (int i = 0; i < n; i ++) cin >> tj[i];for (int i = 0; i < n; i ++) cin >> king[i];//从小到大排序 sort(tj, tj + n);   sort(king, king + n);when (n --) {//如果田忌的快马比齐王的快马快, 赢一次 //各自用掉一匹快马 if (tj[tj_max] > king[king_max]) {count ++;tj_max --;king_max --;}//如果田忌的快马比齐王的快马慢, 输一次 //田忌不如用慢马,去和齐王的快马比 else if (tj[tj_max] < king[king_max]) {count --;tj_min ++;king_max --;}//如果两人的快马一样快 else {//如果田忌的慢马比齐王的慢马快,赢一次//各自用掉一匹慢马 if (tj[tj_min] > king[king_min])  {count ++;tj_min ++;king_min ++;}//如果田忌的慢马赢不了齐王的慢马else {//反正要输,不如输给齐王的快马if (tj[tj_min] < king[king_max])   //Acount --;tj_min ++;king_max --;                        //A}}           }       cout << count * 200 << endl; }return 0;
}

完善二

#include <iostream>
#include <cstdio>
using namespace std;int mymax = 10000;
int f[4][2] = {{-1,0}, {1,0}, {0,-1}, {0,1}};
int a[20][20], v[20][20], v1[20][20];
int l = 1;
int n;bool check(int x1, int y1) {//出界 if (x1 < 0 || x1 >= n || y1 < 0 || y1 >= n) return false;//不能到的地方,或者是曾经到过的地方 if (a[x1][y1] == 1 || v[x1][y1] > 0) return false;return true;
}void dfs(int x, int y) {//走到右下角,找到出口 if (x == n - 1 && y == n - 1) {//打擂台,找最少的步数 if (l < mymax) {mymax = l;memcpy(v1, v, sizeof(v1));}return;}//遍历4个方向 for (int k = 0; k < 4; k ++) {int x1, y1;x1 = x + f[k][0];    y1 = y + f[k][1];if (check(x1, y1)) {v[x1][y1] = k;      //记录方向 l ++;              //步数 +1 dfs(x1, y1);l --;              //回溯 v[x1][y1] = 0;        //回溯 }      }
}int main() {cin >> n;for (int i = 0; i < n; i ++) {for (int j = 0; j < n; j ++)cin >> a[i][j];}//从左上角开始搜索 dfs(0, 0);int d = v1[n-1][n-1];int x = n - 1, y = n - 1;int k;//q 数组用来反向记录移动路径 int qn[400][2];//终点的坐标 qn[0][0] = n - 1;qn[0][1] = n - 1;for (k = 1; ; k ++) {x = x - f[d][0];y = y - f[d][1];//倒数第 1 步,倒数第 2 步,倒数第 3 步...... qn[k][0] = x;qn[k][1] = y;d = v1[x][y];//回撤到起点 if (x == 0 && y == 0) break;}for (int i = k; i >= 0; i --)cout << qn[i][0] << "," << qn[i][1] << endl; return 0;
}

csp-j 模拟题2相关推荐

  1. 计算机csp考试模拟题,CSP-S初赛模拟题笔记(二)

    CSP-S 2019 RP++! 众所周知,NOIP尸体尚热,亡魂未散,CCF开办了CSP-S 2019初赛模拟赛. 这是我瞎写的第二份试卷题解,顺便复习.(什么?第一份?好难的!) 单选题(1)某计 ...

  2. CCF CSP 201609-2 火车购票(C++语言100分)[简单模拟题]

    1. 问题链接:CCF 201609-2 火车购票 试题编号: 201609-2 试题名称: 火车购票 时间限制: 1.0s 内存限制: 256.0MB 问题描述: 问题描述 请实现一个铁路购票系统的 ...

  3. CSP认证201612-3 权限查询[C++题解]:模拟题、结构体、set、有点复杂

    题目分析 来源:acwing 分析:这样的模拟题,主要难在建模,需要思考用什么来存储. 这里用一个结构体来存权限.用哈希表来存<角色,权限结构体>的映射,当然权限结构体存在set中,需要去 ...

  4. csp模拟题-炉石传说

    题目 试题编号: 201609-3 试题名称: 炉石传说 时间限制: 1.0s 内存限制: 256.0MB 问题描述: <炉石传说:魔兽英雄传>(Hearthstone: Heroes o ...

  5. CSP-J CSP-S 初赛模拟题

    2019 CSP-J/S第一轮各省分数线统计与分析(含浙江省) 家长帮 CSP-J/S2019第二轮入门级一等各省评级分数线 CSP-J/S2019第二轮入门级一等各省评级分数线_自主选拔在线 CSP ...

  6. I'm stuck! ccf模拟题。

    ccf模拟题. I'm stuck! 时间限制: 1.0s 内存限制: 256.0MB 问题描述 给定一个R行C列的地图,地图的每一个方格可能是'#', '+', '-', '|', '.', 'S' ...

  7. java格林认证_Java考试格林模拟题

    Java考试格林模拟题 question 14) which of the following lines of code will compile without error 1) int i=0; ...

  8. 1 23 456c语言,2014年计算机二级考试C语言模拟题(1)

    2014年计算机二级考试C语言模拟题(1) 21.下列程序的运行结果为( ). #include main() {struct date {int year,month,day; }today; pr ...

  9. URAL 1993 This cheeseburger you don't need 模拟题

    This cheeseburger you don't need 题目连接: http://acm.timus.ru/problem.aspx?space=1&num=1993 Descrip ...

  10. 《ACM国际大学生程序设计竞赛题解Ⅰ》——模拟题

    这篇文章来介绍一些模拟题,即一类按照题目要求将现实的操作转换成程序语言. zoj1003: On every June 1st, the Children's Day, there will be a ...

最新文章

  1. 标记meta http-equiv = X-UA-Compatible content = IE=edge,chrome=1
  2. linux考试基础知识测验
  3. CCNA配置试验之六 标准ACL和扩展ACL的配置
  4. 字符编码笔记:ASCII,Unicode和UTF-8(转)
  5. Ubuntu18.04解决sudo执行慢的问题
  6. 交叉编译cross compiling
  7. EMOS1.6下的php支持GD库
  8. 数字图像相关(DIC)原理与应用
  9. 如何查计算机版本,如何查看电脑ie浏览器版本呢
  10. 河南科技大学Oracle作业,机械制图作业集第四章答案河南科技大学.ppt
  11. mybatis开启日志打印
  12. 用友U9 BOM全阶展开 代码如下
  13. JS判断是PC端还是WAP端
  14. SiamFC:用于目标跟踪的全卷积孪生网络 fully-convolutional siamese networks for object tracking
  15. idea配置springboot
  16. android手机刷win10吗,有哪些手机可以刷win10系统?Android机上将可刷Win10?
  17. 小猪佩奇用计算机怎么弹,小猪佩奇第一季学习笔记计算机软件及应用IT计算机专业资料-小猪.pdf...
  18. 【DevOps】Jenkins:配置jenkins 流水线/多分支流水线任务构建成功通知企业微信@相关人
  19. Linux hex文件编辑器,全网最全Linux的十大十进制编辑器,要接触Linux的你摆脱不了...
  20. 梦回传奇战网服务器存档修改,梦回传奇单机版(backmir)问题集锦

热门文章

  1. centos 下查看本机公网IP
  2. 软件测试从业者必备核心素质
  3. 70后将实现永生?!这个研究一出来,全世界都炸了!
  4. 在Oracle中使用分页查询
  5. 【360安全卫士显示界面异常解决】
  6. 魅蓝Note2跑分 MT6753性能究竟如何
  7. 2017年程序猿的九大提升点(微记录)
  8. 为什么EDA软件对芯片设计如此重要?
  9. 信号完整性分析学习--18--源端匹配
  10. SQL注入的浅尝辄止