考前一天晚上失眠.......(其实主要不是因为考试的原因)

很幸运,我们学校就是一个考点,本场作战,应该有一点加持吧.

上午在家复习,看到一篇关于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游记&解题报告的更多相关文章

  1. The 10th Shandong Provincial Collegiate Programming Contest 2019山东省赛游记+解题报告

    比赛结束了几天...这篇博客其实比完就想写了...但是想等补完可做题顺便po上题解... 5.10晚的动车到了济南,没带外套有点凉.酒店还不错. 5.11早上去报道,济南大学好大啊...感觉走了一个世 ...

  2. CH Round #56 - 国庆节欢乐赛解题报告

    最近CH上的比赛很多,在此会全部写出解题报告,与大家交流一下解题方法与技巧. T1 魔幻森林 描述 Cortana来到了一片魔幻森林,这片森林可以被视作一个N*M的矩阵,矩阵中的每个位置上都长着一棵树 ...

  3. 二模13day1解题报告

    二模13day1解题报告 T1.发射站(station) N个发射站,每个发射站有高度hi,发射信号强度vi,每个发射站的信号只会被左和右第一个比他高的收到.现在求收到信号最强的发射站. 我用了时间复 ...

  4. BZOJ 1051 最受欢迎的牛 解题报告

    题目直接摆在这里! 1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 4438  Solved: 2353[S ...

  5. 习题:codevs 2822 爱在心中 解题报告

    这次的解题报告是有关tarjan算法的一道思维量比较大的题目(真的是原创文章,希望管理员不要再把文章移出首页). 这道题蒟蒻以前做过,但是今天由于要复习tarjan算法,于是就看到codevs分类强联 ...

  6. 习题:codevs 1035 火车停留解题报告

    本蒟蒻又来写解题报告了.这次的题目是codevs 1035 火车停留. 题目大意就是给m个火车的到达时间.停留时间和车载货物的价值,车站有n个车道,而火车停留一次车站就会从车载货物价值中获得1%的利润 ...

  7. 习题: codevs 2492 上帝造题的七分钟2 解题报告

    这道题是受到大犇MagHSK的启发我才得以想出来的,蒟蒻觉得自己的代码跟MagHSK大犇的代码完全比不上,所以这里蒟蒻就套用了MagHSK大犇的代码(大家可以关注下我的博客,友情链接就是大犇MagHS ...

  8. 习题:codevs 1519 过路费 解题报告

    今天拿了这道题目练练手,感觉自己代码能力又增强了不少: 我的思路跟别人可能不一样. 首先我们很容易就能看出,我们需要的边就是最小生成树算法kruskal算法求出来的边,其余的边都可以删掉,于是就有了这 ...

  9. NOIP2016提高组解题报告

    NOIP2016提高组解题报告 更正:NOIP day1 T2天天爱跑步 解题思路见代码. NOIP2016代码整合

随机推荐

  1. SQL Server 2000~2017补丁包

    最新更新 Product Version Latest Service Pack Latest GDR Update Latest Cumulative Update CU Release Date ...

  2. Unable to resolve service for type 'Microsoft.Extensions.Logging.ILogger' while attempting to activate 'xxxxx.Controllers.xxxxController'.

    Unable to resolve service for type 'Microsoft.Extensions.Logging.ILogger' while attempting to activa ...

  3. Python学习之路:关于列表(List)复制的那点事

    要谈列表的复制,我们就要谈到Python的赋值规则 首先我们创建列表a: a = [1,2,3] 通常我们复制一个元素的方法是这样的: b = a #复制元素的一般方法 print(a) print( ...

  4. day53——标签操作

    day53 今日内容 标签操作 值操作 取值: 文本输入框:$('#username').val(); input,type=radio单选框: $('[type="radio"] ...

  5. Go基础编程实践(九)—— 网络编程

    下载网页 package main import ( "io/ioutil" "net/http" "fmt" ) func main() ...

  6. 【Rust】使用cargo创建项目及cargo源的替换

    ---------------------------------参考文档------------------------------- https://rustlang-cn.org/office/ ...

  7. C# 历遍对象属性

    今天有个网友问如何历遍对象的所有公共属性,并且生成XML.采用序列化方式的话比较简单,我写个手工解析的例子,这样能让初学者更加理解也比较灵活,记录一下吧或许会有人用到. 对象模型: public cl ...

  8. ElasticSearch动态修改副本个数

    创建只有 一个主分片,没有副本的小索引: PUT /my_temp_index{ "settings": { "number_of_shards" : 1, & ...

  9. 拓展 - Webrtc 的回声抵消(aec、aecm)算法简介

    webrtc 的回声抵消(aec.aecm)算法简介 原文链接:丢失.不好意思        webrtc 的回声抵消(aec.aecm)算法主要包括以下几个重要模块:1.回声时延估计 2.NLMS( ...

  10. 英语DIAMAUND钻石指坚硬不可侵犯的物质

    首先谈谈钻石和金刚石的名称.金刚石是一种天然矿物,是钻石的原石.习惯上人们常将加工过的金刚石称为钻石,而未加工过的称为金刚石(当然,有的金刚石不用加工便可应用).钻石是那些达到宝石级别的金刚石晶体切磨 ...