CSP认证
lc520xyp
这个作者很懒,什么都没留下…
展开
-
C++多种方式进行进制转换
规定格式输出 printf("%05o\n",35); //按八进制格式输出,保留5位高位补零 printf("%03d\n",35); //按十进制格式输出,保留3位高位补零 printf("%05x\n",35); //按十六进制格式输出,保留5位高位补零 也可以使用sscanf方法进行转换 sscanf(temp,"%x",&k);//将16进制字符串转换为10进制数 temp为字符串,中间为输出格式,最后一个参数进行值的接受 其实sscanf还有很多的用途,更多用法可以原创 2020-12-02 22:08:16 · 669 阅读 · 1 评论 -
CSP 201809-4再卖菜思路及代码讲解
先记录下自己的思路,今天可能实现不完了 根据题目的意思和我们的手动推导,我们很容易发现第3个商店的价格是比较容易确定的,现在的问题就是如何从这一个价钱中一步步推导到所有的价钱。 我们还应该注意到,平局值是使用去尾法的方式计算的,且要求结果以字典序最小的方式进行输出,所以我们从可能的值中选出的结果一定是要保证越靠前的数越小的。 以题中的样例为例,1 2可能合为4或5,1 2 3可能的值为6或7或8,本着前面值越小的原则,我们首先应该选4和6的组合,对应的3位置的价格是2,但是这样一味的取小可能会造成一定的问题原创 2020-11-29 21:52:24 · 289 阅读 · 2 评论 -
CCF认证-201712-4-CSP行车路线解题思路
官方题解网址 问题描述 思路 设置结构体,包括类型、目的地、长度、疲劳值,具体的意义可往下看下代码注释 使用迪杰斯特拉算法,更新路径时分为3种情况,1 原来最后一条路是大路 2 原来最后一条路是小路,新加入的是小路 3 原来最后一条路是小路,新加入的是大路,每种情况代码中都写了注释,不懂的可以评论提问哦~ 输入到n结点的疲劳值! 提醒 要注意疲劳值是会产生溢出的,所以要使用long long ,我原来用int,一直80分,后来改long long试了下,就100了! 代码 #include<bi原创 2020-11-24 20:36:03 · 394 阅读 · 0 评论 -
CCF认证-201709-4-CSP通信网络解题思路
思路 使用vector nodes记录单向边的关系 vector path记录深搜的路径 bool vis[] 记录是否被访问过 set know 记录知道的结点有哪些 依次对每一个结点进行深搜,到达最深的结点时,路径前面的结点都能与最后一个结点通信,这时建立知道关系 最后检查know[i] 的大小就知道是否知道全部的结点了 代码 #include <bits/stdc++.h> using namespace std; int n,m,a,b; vector<int> node原创 2020-11-22 21:14:53 · 197 阅读 · 0 评论 -
CCF-20170902-CSP公共钥匙盒解题思路
思路 设置结构体key来存储借还的具体信息 使用vector<key>来存储借还信息 使用pos和index数组来分别记录位置上放了什么钥匙,钥匙的位置信息 具体实现 #include <bits/stdc++.h> using namespace std; struct key{ int n;//记录几号教室 int t;//记录动作发生的时间 bool flag ;//true表示借钥匙,false表示还钥匙 key(int nn,int tt,原创 2020-11-22 19:45:28 · 174 阅读 · 0 评论