- 博客(12)
- 收藏
- 关注
原创 CSP模拟赛集锦篇
不知不觉距离CSP也只有9天了,感觉要被虐。。。PJ的复习情况非常垃圾,TG就是看RP的 初赛狗屎运,超TG分数线1分KDT大好机构给我们搞了3场比赛,感觉被许多神犇虐了一模T1签到T2二分or尺取法,懒,二分算了T3感觉又像DP又像计数,DP不出来,计数推推公式,水过样例,结果手造挂了。。。跟暴力一拍,艹,居然公式推错了。改改改,推推推。哇啊,我这小奥水平不行啊,还是没搞出来,来来来,大法师一发~~T4树上搜索,纯搜会T成60,开了个剪枝,跑到飞起,切掉(后来看KDT发的正解好像又是什么一层
2021-10-13 22:20:51
196
原创 CF1551B2 Wonderful Coloring - 2 题解
本题我们首先用桶扫一遍序列,由于需要存出下标,所以我们把桶定义成vector形式。接下来扫一遍桶。由于方便,我们将每种颜料所涂的下标用vector来存若桶中数字数量>=k,则将所有k个容器都加入一个,剩下来的就没办法了若<k,则先把其暂存在另一个序列里,我们称之为“暂存序列”,长度为cnt扫完我们遍历暂存序列,但是由于要满足每一种颜色染的字母的数量全部相等的条件,所以我们可以只遍历到cnt-cnt%k,感性理解就是最后一个不大于cnt且是k倍数的数。这样我们就依次放入容器就行了,我们就
2021-09-26 22:04:30
214
原创 CF1559D1 Mocha and Diana (Easy Version)
本题我们可以考虑O(n2)地枚举两个结点,然后尝试将其连接。但我们如何说明不同的顺序遍历出的树的边数相同?验证如下:假设红框和蓝框代表某个森林中的某两颗树,那么易知两个红色结点连通、两个蓝色结点连通(树的基本性质)。此时,我们若连黄边,则其它连接两棵树的边一定连不上,否则将产生环。同样的,如果连绿边的话其它边也自然连不上(包括黄边),所以到头来只能连一条边,故顺序不影响最终结果。那我们便可以放心大胆地去枚举了。但是怎么判环?我们可以用两个并查集来维护两个森林就行了。代码实现:#include &l
2021-09-25 17:51:50
187
原创 P3719 [AHOI2017初中组]rexp
题面无疑是一个表达式求值,但:由于aa(aa)这种东西很讨厌,所以我盯着题目5min突然想到可以在a之间塞+号,并且+的优先级大于|这样就能搞定了接下来就是一阵猛调+AC了。#include <iostream>#include <stack>using namespace std;const int MAXN = 1e6 + 100;string s;char ans[MAXN];int cnt;stack<char> sta;void
2021-09-23 21:04:10
271
原创 P2672 [NOIP2015 普及组] 推销员
题目一看就是贪心或者DP,但是需要输出x为不同值的不同答案,可以猜想是贪心,并且每选完一个地方去推销之后,对于剩下所有地方分析出最优的那一个,前往推销。至于怎么分析,我们需要分类讨论:我们假设所走过的最远的住户下标为far,则对于1~far-1,我们求出a[i]最大的下标对于far+1~n,我们求出(s[i]-s[far])*2 + a[i]最大的下标至于为什么不一样,相信很容易理解。既然far比你远,你一定能在去far的路上经过你这儿,所以只需要算a[i]即可。但是只有60分
2021-09-21 16:24:57
257
原创 洛谷 P1378油滴扩展 题解
数据范围小,可以全排列出所有先后顺序,然后模拟判断即可。欧几里得距离很好求,与其它圆的距离可以用两圆心距离-另一圆半径来求。剩下的都是一些精度问题,把π开精确一点就可以了。#include <iostream>#include <cstdio>#include <cstdlib>#include <cmath>#include <algorithm>#define area fabs(x1-x2)*fabs(y11-y2)using
2021-09-12 16:11:30
138
原创 P1199 [NOIP2010 普及组] 三国游戏
我们可以设武将a,与其默契值最高的武将为a’,那么我机aa’此时,我们根据贪心策略,便可以选与a组合默契值次大的b,则计算机便会选b’我机a,ba’, b’此时明显,a与b的默契值 > a’b’的默契值原因:因为a和b组成的默契值是次大的,而a’与b’不可能是最大的(已经被拆分),而默契值均不相同,所以a与b的默契值 > a’b’的默契值所以人必赢(先手)那么只需要遍历每个人找出其次大值的最大值就搞定了。#include <
2021-09-11 11:56:32
119
原创 AT3590 Inserting ‘x‘ 题解
我们可以直接用两个指针l、r指向串头和串尾,然后分3中情况:相同,l++, r–s[l] == 'x' && s[r] != 'x' 则 s = "x" + s; ans ++; l ++s[l] != 'x' && s[r] == 'x' 则 s = "x" + s; ans ++; l ++;如果都不是x切不相等,则必定无解#include <iostream>using namespace std;int n, ans;bool fl
2021-09-08 21:37:10
62
原创 刷题日志-USACO Section 2全套
[P1457 USACO2.1]城堡 The Castle 思维难度不高,难度居然是蓝,被某谷赋虚高了,主要是考码力,地图需要在每个点上统计东南西北四处是否有墙,好在没有冲突的情况,无需分类讨论(实际上我也不会/qwq)。剩下的就是DFS洪水填充,统计一下就可以了,反正范围只到50。#include <iostream>#include <cstring>#include <cstdio>// #include <windows.h>using
2021-09-07 20:00:25
142
原创 刷题-USACO Section 1 题目个人选做
马上就要打CSP了,最近准备刷一刷USACO section1和2,先刷刷section 1练练手吧,保证PJ1=、TG能苟进暴力分。。。[P1208USACO1.3] 混合牛奶 Mixing Milk 比较简单的贪心题,先对单价排序,如果单价相同对最大产量排序,然后跑一下花费就可以了。#include <iostream>#include <algorithm>using namespace std;typedef long long ll;const int MA
2021-08-25 14:50:52
111
原创 贪心-P1106删数问题题解
题目描述键盘输入一个高精度的正整数 NN(不超过 250250 位),去掉其中任意 kk 个数字后剩下的数字按原左右次序将组成一个新的非负整数。编程对给定的 NN 和 kk,寻找一种方案使得剩下的数字组成的新数最小。输入格式n(高精度的正整数 )。k(需要删除的数字个数 )。输出格式最后剩下的最小数。输入输出样例输入 11754384输出 113这题算是贪心思想的一个经典运用,也是所有学贪心的OIer们的必经之题(学贪心都1年了,复现还WA了4发。。。)思维难度一般,但是比较复杂,
2021-08-21 13:25:06
228
1
原创 HELLO CSDN
在Github上写了一段时间博客,博文大概有30多篇了,但是评论系统一直配置不好,而且加载起来的速度惊人。。。所以现在我正式开始在csdn社区写博客,当然,github站也会同步更新。github站:HERELatex实验:∑x=1n\sum_{x=1}^n∑x=1n代码块实验:hh,CE辣...
2021-08-20 20:02:04
50
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人