CSP-J2019游记&解题报告
考前一天晚上失眠.......(其实主要不是因为考试的原因)
很幸运,我们学校就是一个考点,本场作战,应该有一点加持吧.
上午在家复习,看到一篇关于PN532模拟小米手环加密卡的文章,于是,,,,,,,,你们懂的,荒废了.
下午1点过正式出征,在熟悉的学校排了一会,碰到几个同学,甚至还有小学同学!
2点半开考,先让我们看了10分钟卷子,我说这个完善程序第二题怎么这么简单啊(大雾),结果最后做自闭了....
选择题出奇简单,事实证明我全对.而且,一个基础知识题都没有!CCF真的是大刀阔斧的改革!
读程序没什么可说的,逼疯众考生第二题只试了几组数据就写出来了,错了一个判断.
就是这道:
看样子是数据试少了(雾*2)
实际上你看看这答案解析不是在试数据是在干嘛!要不然谁搞得懂CCF出的鬼题是什么意思!
阅读程序第三道的最后一题,简直跪了,考场上猜了D
实际上我的思路是对的.最好的情况,也就是输出最小,就是每次都2分.
100 个节点的每层节点数量就是 (1,2,4,8,16,32,37)分别乘对应权值即可 1+4+12+32+80+192+259
但是,我天真的列出来1,2,4,8,16,32,64,算出来600多,呵呵...
完善程序第一道,简单,全对.
但这个思路清奇,加上位运算的使用,可以学习一下.
最后来说说完善程序第二道,难哭
重了几层数组,出题人不数数的吗!!!!!
好了,来说说正解.
我们先抛开双关键字,看看单关键字,最普通的基数排序.
找到一篇很好的文章:https://www.itcodemonkey.com/article/11750.html
这里是计数排序算法演示
:
还有网上找的代码:
#include <iostream>
#include <stdio.h>
using namespace std; void COUNTINGSORT(int *A,int *B,int len,int k){
if(A == NULL || k <= || len <= ){
return;
}
int C[k+],i;
//初始化
for(i = ;i <= k;i++){
C[i] = ;
}
//统计值为A[i]的个数,C[i]是等于i的元素个数
for(i = ;i < len;i++){
C[A[i]] ++;
}
//标记1
//确定值A[i]在最终输出数组B中位置,C[i]是小于等于i的元素个数
for(i = ;i <= k;i++){
C[i] += C[i-];
}
//输出到数组B中
for(i = len-;i >= ;i--){
//index元素A[i]在数组B中的下标
int index = C[A[i]];
B[index] = A[i];
//如果有相同值元素的情况
C[A[i]] --;
}
//B下标从1开始
} int main(){
int A[] = {,,,,,,,};
int B[];
COUNTINGSORT(A,B,,);
for(int i = ;i <= ;i++){
printf("%d\n",B[i]);
}
return ;
}
在这个地方,其实相当于把程序的标记1做完了,下面的for循环就是在做前缀和,做完后是:
1 3 6 7 7 9
做了前缀和有什么用呢?看下面代码:
for(i = len-1;i >= 0;i--){
//index元素A[i]在数组B中的下标
int index = C[A[i]];
B[index] = A[i];
//如果有相同值元素的情况
C[A[i]] --;
}
相当于题中的 ord[--cnt[b[i]]] = i
到这里便不难理解了.
最后回到考题双关键字,就是多套了几个数组,没什么区别.
自测分数84,等着出成绩吧,反正四川慢的很。(心里还有一点小激动呢)
最后 复赛good luck!
附2019CSP-J初赛试题及答案
链接: https://pan.baidu.com/s/1FmJHHaYZZSwDC_6J7I8x4A&shfl=shareset 提取码: u6kv
CSP-J2019游记&解题报告的更多相关文章
- The 10th Shandong Provincial Collegiate Programming Contest 2019山东省赛游记+解题报告
比赛结束了几天...这篇博客其实比完就想写了...但是想等补完可做题顺便po上题解... 5.10晚的动车到了济南,没带外套有点凉.酒店还不错. 5.11早上去报道,济南大学好大啊...感觉走了一个世 ...
- CH Round #56 - 国庆节欢乐赛解题报告
最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...
- 二模13day1解题报告
二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...
- BZOJ 1051 最受欢迎的牛 解题报告
题目直接摆在这里! 1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 4438 Solved: 2353[S ...
- 习题:codevs 2822 爱在心中 解题报告
这次的解题报告是有关tarjan算法的一道思维量比较大的题目(真的是原创文章,希望管理员不要再把文章移出首页). 这道题蒟蒻以前做过,但是今天由于要复习tarjan算法,于是就看到codevs分类强联 ...
- 习题:codevs 1035 火车停留解题报告
本蒟蒻又来写解题报告了.这次的题目是codevs 1035 火车停留. 题目大意就是给m个火车的到达时间.停留时间和车载货物的价值,车站有n个车道,而火车停留一次车站就会从车载货物价值中获得1%的利润 ...
- 习题: codevs 2492 上帝造题的七分钟2 解题报告
这道题是受到大犇MagHSK的启发我才得以想出来的,蒟蒻觉得自己的代码跟MagHSK大犇的代码完全比不上,所以这里蒟蒻就套用了MagHSK大犇的代码(大家可以关注下我的博客,友情链接就是大犇MagHS ...
- 习题:codevs 1519 过路费 解题报告
今天拿了这道题目练练手,感觉自己代码能力又增强了不少: 我的思路跟别人可能不一样. 首先我们很容易就能看出,我们需要的边就是最小生成树算法kruskal算法求出来的边,其余的边都可以删掉,于是就有了这 ...
- NOIP2016提高组解题报告
NOIP2016提高组解题报告 更正:NOIP day1 T2天天爱跑步 解题思路见代码. NOIP2016代码整合
随机推荐
- 一定要记住的14个JVM内存配置参数
jvm setting的参数确实比较多(Oracle官网Java HotSpot VM Options),但是作为一名java开发者,那几个最常用最基本的参数设置和意义一定要死记和理解.这里推荐一个网 ...
- Java开发笔记(一百四十二)JavaFX的对话框
JavaFX的对话框主要分为提示对话框和文件对话框两类,其中提示对话框又分作消息对话框.警告对话框.错误对话框.确认对话框四种.这四种对话框都使用Alert控件表达,并通过对话框类型加以区分,例如Al ...
- Visual Studio Code (vscode) 配置 C / C++ 环境
Visual Studio Code (vscode) 配置 C / C++ 环境 昨天突发奇想,想使用vscode配置C++环境,因为不想下载 Dev OR codeblock,然后借助了很多网上教 ...
- 去除Chrome“请停用以开发者模式运行的扩展程序”提示
将version.dll放在chrome同级目录,重启浏览器( 79.0.3945.79版本后已失效)
- springboot2.x 使用redis (入门)
在使用之前先简单介绍一下,redis和mongoDB这两个nosql的区别以及使用场景. 1. redis redis是一个分布式缓存.高性能的key-value数据库.支持存储的value类型包括s ...
- [cf 1245 F] Daniel and Spring Cleaning
题意: 求区间$[l,r]$内有多少有序数对$(a,b)$满足$a+b=a\bigoplus b$. $l,r\leq 10^9$. 题解: 有用的就一句话: 求区间内一元组可以一维容斥,同理求二元组 ...
- 或与异或 [背包DP]
也许更好的阅读体验 \(\mathcal{Description}\) 给定\(n\)和长度为\(n\)的数组\(a\) 问从\(a\)中选取任意个数使得其 异或起来的值 等于 或起来的值 的方案数 ...
- .net core中的Session以及HttpContext对象使用小结
session用于识别用户并保持用户信息,就是一个会话 ,在浏览器不关闭的前提下,可以保存用户的信息,比如登录的保存用户信息从一个网页跳转到另一个网页,你的用户信息就可以用session. .net ...
- 表单提交学习笔记(一)—利用jquery.form提交表单(后台.net MVC)
起因:一开始想用MVC本身的Form提交方法,但是提交完之后想进行一些提示,MVC就稍显不足了,最后用jquery插件---jquery.form.js,完美解决了问题~~ 使用方法 一.下载jque ...
- 混沌理论(Chaos theory)和非线性系统
混沌理论(Chaos theory)是关于非线性系统在一定参数条件下展现分岔(bifurcation).周期运动与非周期运动相互纠缠,以至于通向某种非周期有序运动的理论.在耗散系统和保守系统中,混沌运 ...