CCF认证
巧乐兹呀
这个作者很懒,什么都没留下…
展开
-
CSP 202006-1 线性分类器
原题链接202006-1 线性分类器题目分析题目即给定AB两类点,每次给定一条直线,需要判断这条直线能否将AB两类点完全分开,也就是AB点处于该直线的不同侧。(知道如何判断点和直线关系的同学可以跳过下面的引用)关键在于如何判断任意两点关于直线的位置,即在同一侧还是不同侧。这里注意到直线的表示方式为k_0 + k_1 * x + k_2 * y = 0。若想判断P、Q是否在不同侧,只要把P、Q的坐标带入直线的方程。两个结果同号 ——》PQ在直线同怡侧两个结果异号——》PQ在直线不同侧对于原创 2020-08-21 16:39:01 · 331 阅读 · 0 评论 -
CCF认证 201409-3字符串匹配
题目链接CCF认证 201409-3字符串匹配思路有两个思路第一用字符串的函数find,查找是否包含字符串。如果大小写不敏感的话,就都转为小写再判断。第二就是利用正则表达式代码代码一,使用string#include <bits/stdc++.h>using namespace std;int main(){ string str; cin>>s...原创 2020-04-19 16:34:39 · 242 阅读 · 0 评论 -
CCF认证 201703-3Markdown
题目链接CCF认证 201703-3Markdown思路采用正则表达式,会让题目简化很多思路来源于博主[richenyunqi]代码#include<bits/stdc++.h>using namespace std;int main(){ vector<pair<regex,string>>trans={ {regex(...原创 2020-04-19 10:40:29 · 204 阅读 · 0 评论 -
CCF认证201503-4网络延时
原题链接CCF认证201503-4网络延时思路 题目中并没有区分主机和交换机,所有可以把他们当成是一样的。还有需要注意的是,将树进行双向的存储。 树的直径:树中任意两点距离的最大值 求法: 从树的任意一点y,通过BFS到达终点x;则x必为直径的一个端点。再从x通过BFS到达终点z。z必为直径的另一个端点。则从x经过BFS到z的路径为树的其中一条直径。代码#include <...原创 2020-04-19 08:51:22 · 148 阅读 · 0 评论 -
CCF认证201509-4高速公路
原题链接CCF认证201509-4高速公路解题思路最强连通子图[Tarjan算法]dfn[u]为节点u的次序编号(时间戳)low[u[为u或u的子树能够追溯到的最早的栈中节点的次序号当dfn[u]=low[u]时,以u为根的搜索子树上的所有节点是一个强连通分量伪代码tarjan(u){ dfn[u] = low[u] = ++index;//时间戳 s.push(u); ...原创 2020-04-18 12:48:09 · 198 阅读 · 0 评论 -
CCF认证201409-4最优配餐
原题链接CCF认证201409-4最优配餐解题思路将所有的店家同时入队列。BFS,谁先到算谁的代码#include <bits/stdc++.h>using namespace std;int cnt[1010][1010]={0};//用于标记每个位置的送餐量bool visited[1010][1010];long long ans =0;struct node...原创 2020-04-16 11:17:59 · 161 阅读 · 0 评论 -
CCF认证201604-4游戏
原文链接我的个人博客原题链接CCF认证201604-4游戏思路很像19年蓝桥杯走迷宫的那个题目。给你一个n*m的迷宫,1表示不可访问,0表示可访问,需要你求出,从(1,1)到(n,m)所需要的最短时间。这个题目也是一样的,只是他的1,0状态是动态变化的而已,但是思路是相通的。我们只有记录当前时间点是否可以访问即可,因此就需要三维的数组了。代码#include <bits/std...原创 2020-04-16 09:59:52 · 197 阅读 · 0 评论 -
CCF CSP认证201709-4 通信网络(DFS)
原文链接我的个人博客原题链接201709-4 通信网络(DFS)思路 只要两个部门之间连通,不管是发送消息还是接收消息,那么这两个部门都能知道彼此的存在。由某个部门进行dfs的过程中,访问到的所有其它的部门, 那么这两个部门都是互相知道的。在dfs的过程中标记这两个部门连通,即finds[root][now]=finds[now][root]=1。注意是双向知晓的,不要只记录一个方...原创 2020-04-13 11:24:26 · 377 阅读 · 0 评论 -
CCF认证201412-4最优灌溉
原文链接我的个人博客原题链接CCF认证201412-4最优灌溉思路 这个题目和数据中心、地铁修建两个题目都是最小生成树的考点。 题目给定了n块麦田的m条边的信息,要求找出能够灌溉整个麦田的最小费用。 很典型的最小生成树的题目,一点弯弯绕也没用。可见相同的考点再次出现时,会变得越来越隐蔽。代码#include <bits/stdc++.h>using names...原创 2020-04-13 10:24:01 · 113 阅读 · 0 评论 -
CCF认证201703-4地铁修建
原文链接我的个人博客原题链接CCF认证201703-4地铁修建解题思路 一看到这个题目,心中窃喜,和数据中心这题不是一毛一样吗。然后代码改都没改(就把root输入给删了)直接提交了,然后得了五分。哈哈哈哈太惨了 后来冷静下来看一下题目,发现题目是在1到n之间修建铁路,并不需要所有的点都连通。只要1和n连通就????。因为所有的路段是同时施工的,整个最短的施工时间就取决于树(图)中最长的...原创 2020-04-13 09:30:40 · 139 阅读 · 0 评论 -
CCF认证201812-4数据中心
原文链接我的个人博客原题链接CCF认证201812-4数据中心解题思路题目中的传输时间Tmax概念说的很吓人,但是其实就是生成树中最长的边长。这个题目的核心就在于求最小生成树的最长边。代码#include <bits/stdc++.h>using namespace std;struct Edge{//边的类 int v1,v2,cost; Edge(int ...原创 2020-04-13 09:02:56 · 171 阅读 · 1 评论 -
CCF 201903-4消息传递接口(队列)
原文链接我的个人博客原题链接CCF 201903-4消息传递接口思路 主要的思路是利用队列来存储每一个进程的收发指令。一旦找到匹配的指令,则将这一对出队列。直到某一次找不到匹配的指令了,退出循环。再判断是不是所有的进程对应的收发指令队列都为空。如果全部为空,则该程序不存在死锁,否则进程存在死锁。 因为每一个进程有的收发指令的个数是不同的,因此需要处理这样不定数的输入。这里用到了st...原创 2020-04-11 11:15:10 · 291 阅读 · 0 评论 -
CCF认证201909-4推荐系统
原文链接我的个人博客原题链接CCF认证201909-4推荐系统解题思路错误思路 理解清楚题意再做题,这是前提啊。刚开始读题的时候不明白下面这句话的意思。刚开始我的理解是。每个商品按分数从高到低选出ki个商品。我用vector< set<node> > data(m);存放商品的学校。其中data[i]对应i类商品的所有小类商品的编号和分数。最后选择的时候是从0...原创 2020-04-10 12:33:21 · 306 阅读 · 0 评论 -
CCF认证201909-3字符画
原文链接我的个人博客原题链接CCF认证201909-3字符画思路 不得不说,这个题是真的恶心。这么多字还说不清楚。大概考的是心态吧。。。。题目本身不难,读懂它的要求就好。 题目的大概意思是,可以通过\x1b[42;2;R;G;Bm改变终端的背景色。现在给你一个图片中每一个像素的值,由RGB三个颜色组成。将大的图片分割成p*q大小的小块。每一个小块的颜色,是这个小块中所有像素的平均值...原创 2020-04-09 17:17:12 · 379 阅读 · 1 评论 -
CSP 窗口
原文链接我的个人博客原题链接窗口思路给定一个点,很容易判断是否属于某个窗口。在这里,用结构体存放窗口的信息,包括窗口id和窗口排列的优先级,用z值的大小表示,z值越大,就越排在vector的前面。从最上面的窗口开始判断点击的位置是否属于该窗口,一旦查询到属于某个窗口,则将该窗口的z值变成最大的。这里用++n保证,最新点击的z值是最大的。代码#include <bits/std...原创 2020-04-01 17:27:47 · 892 阅读 · 0 评论 -
CSP 俄罗斯方块
原文链接我的个人博客原题链接俄罗斯方块思路用4*4的图案,从上到下,覆盖在15*10的游戏区间。模拟方块下降的过程,当不能再往下时,更新游戏区间,然后输出。为了解决新落下的方块最下面有空行的问题,在游戏区间的最下面补上几行均为1的值即可。另外,一定一定不要从下往上找符合条件的位置!!!!不要问为什么,问就和我一样蠢。改了快两个小时的bug,我没了~~~~~代码#include ...原创 2020-04-01 16:28:35 · 787 阅读 · 0 评论 -
CCF 201803-3 URL映射
原文链接我的个人博客原题链接URL映射思路用p数组存放所有的url匹配规则,r数组记录匹配的名称。对于每一个需要进行判读的url路径,将其与所有的p数组中的字符串进行比较。一旦有符合的就输出。代码#include <bits/stdc++.h>using namespace std;const int N = 100;string p[N], r[N], s;...原创 2020-03-21 17:54:12 · 157 阅读 · 0 评论 -
CCF 201803-2 碰撞的小球
原文链接我的个人博客原题链接碰撞的小球思路该题灵感来自于蓝桥杯的蚂蚁感冒这个题目。感兴趣的可以去搜索一下。 第一:无论经过多长时间,小球的相对位置时不会发生改变的。因此他们每次发生碰撞都会改变方向,因此每两个球在坐标轴上的相对位置是不会发生变化的。 第二:两个小球相撞,每个球都改变了方向,可以看作他们互相穿过了对方。这样一来我们就可以把复杂的相撞改变方向,简化为不改变方向运动了...原创 2020-03-21 17:49:40 · 205 阅读 · 0 评论 -
CCF201803-1跳一跳
原文链接我的个人博客原题链接跳一跳思路当输入为0时,游戏结束用pre变量保存上一跳的得分。容易知道,当本次为跳到中心,则直接加一分。如果跳到中心,则需要去考虑到前一次的得分。当pre为1时,那么该次的得分就是2;当pre不为1时,那么该次的得分就是pre+2.代码#include <bits/stdc++.h>using namespace std;long lon...原创 2020-03-21 17:34:54 · 224 阅读 · 0 评论 -
CCF201812-2小明放学
题目描述小明放学思路是第一题小明上学的升级版注意这里的数据类型都要使用long long!对于每一个输入(k,t)是相对于出发时的时刻而言的,因此我们需要根据现在已经过去的时间,推算出现在还需要等待多长时间。这里我用getTime这个函数来计算。我们利用一个[0,r+g+y]的数轴来辅助计算第一步:计算出发时刻,在数轴上的位置第二步:计算times时间之后,在数轴上的位置第三步:...原创 2020-03-20 17:31:50 · 168 阅读 · 0 评论 -
CCF201812-1小明上学
原题链接我的个人博客题目描述题目背景小明是汉东省政法大学附属中学的一名学生,他每天都要骑自行车往返于家和学校。为了能尽可能充足地睡眠,他希望能够预计自己上学所需要的时间。他上学需要经过数段道路,相邻两段道路之间设有至多一盏红绿灯。 京州市的红绿灯是这样工作的:每盏红绿灯有红、黄、绿三盏灯和一个能够显示倒计时的显示牌。假设红绿灯被设定为红灯 r 秒,黄灯 y 秒,绿灯 g 秒,那么从 0...原创 2020-03-20 17:08:48 · 166 阅读 · 0 评论 -
CCF认证 小明种苹果续
题目链接小明种苹果思路两大坑点:一颗苹果树可能进行多次疏果。只要当前苹果树上苹果的值大于输入的那个正数的值,就表示发生了落果。当苹果树只有三棵时,且均有落果,则E为3,不是1。斯认为这个很不科学,就应该是1。不过写1只能得90分,只好听题主爸爸~代码#include <bits/stdc++.h>using namespace std;/*当只有3苹果树且均掉果子时...原创 2020-03-06 16:18:26 · 542 阅读 · 1 评论 -
回收站选址
原题链接回收站选址思路用map去存放垃圾的地址。垃圾的地址使用结构体表示如果要用map存放自定义的结构类型,需要实现运算符的重载。代码#include <bits/stdc++.h>using namespace std;map<int,int>cnt;struct node{ int x,y; bool operator<(const node...原创 2020-03-06 16:16:00 · 259 阅读 · 0 评论