自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

ModestCoder_的博客

一个modest的coder

  • 博客(66)
  • 收藏
  • 关注

原创 友链友链友链

排名不分先后丫 orz潜力股zyp orz数据结构大师zyc orz神仙fxk orz神仙学长wrt orz杭二仙女hsy orz衢二神仙xzy orz义乌神仙bzt orz义乌神仙zjq

2019-08-21 07:30:52 731

原创 【题解】LuoGu4660:[BalticOI 2008]手套

原题传送门 先随便选择左手套的颜色,把一些颜色的左手套都取光,那么在这个情况下,右手套至少取多少只? 从样例下手 4 0 7 1 6 1 5 0 6 左手套选了2、3两种颜色,拿了8只手套,右手套就至少拿8个(1、4两种颜色手套都要拿,再多拿一只) 对于每种取颜色方案,都会得到一个二元组(x,y)(x,y)(x,y)表示这些颜色的左手套数量之和x,这些颜色的补集的右手套数量之和y 把这个二元组...

2019-08-29 19:29:30 469

原创 【题解】CF37B:Computer Game

原题传送门 模拟题…… 每一秒都选符合要求且攻击力最大的卷轴 没有就算了 但是若是BOSS的生命力只增不减且已没有可用的卷轴,输出NO Code: #include <bits/stdc++.h> #define maxn 1010 using namespace std; struct data{ int p, atk; }a[maxn]; struct node{ int se...

2019-08-29 18:04:46 216

原创 【题解】LuoGu5375:[THUPC2019]组合数据结构问题

原题传送门 直接模拟四个数据结构的操作即可 一旦某一个数据结构不满足要求以后就不用模拟了 注意每一次都要判断是否为空,否则会RE Code: #include <bits/stdc++.h> using namespace std; queue <int> a; stack <int> b; priority_queue <int> c; prior...

2019-08-29 12:43:43 191

原创 【题解】LuoGu4144:大河的序列

原题传送门 真没想到这是一道结论题 先放结论:ans=2amaxans=2a_{max}ans=2amax​ 如何证明? 假如现在手里有一个数x,考虑是否能把这个数后面的那个数y加入,组成一个两个数的序列 那就是是否更优 对于xxx的二进制形式的某一位讨论 是1:若y的对应位是1,那么组合成一起不会更优却也不会更劣;若y的对应位是0,那么组合成一起ororor没事,andandand却成了0,更...

2019-08-29 11:54:11 166

原创 【题解】LuoGu2265:路边的水沟

原题传送门 啥都不用说了,直接上公式Cn+mmC_{n+m}^{m}Cn+mm​ 意义,:nnn个向下走的决策,mmm个向右走的决策,(n+m)(n+m)(n+m)个决策随机排列的方案数 就是(n+m)(n+m)(n+m)个决策中选出mmm个决策向右走,组合数就好了 然后,杨辉三角好像用不得,那就再来一个公式:Cmn=m!(m−n)!∗n!C_{m}^{n}=\frac{m!}{(m-n)!*n!...

2019-08-28 18:29:48 187

原创 【题解】CF977E:Cyclic Components

原题传送门 求环的个数 直接dfs处理出每个连通块 然后如果一个连通块的所有点的度数都为2,那么是一个环 Code: #include <bits/stdc++.h> #define maxn 200010 using namespace std; struct Edge{ int to, next; }edge[maxn << 1]; int num, head[max...

2019-08-28 18:14:32 201

原创 【题解】CF923A:Primal Sport

原题传送门 首先发现一个结论:Xi的值域为[Xi+1−P+1,Xi+1],P为Xi+1的最大质因数X_i的值域为[X_{i+1}-P+1,X_{i+1}],P为X_{i+1}的最大质因数Xi​的值域为[Xi+1​−P+1,Xi+1​],P为Xi+1​的最大质因数 预处理每个数是否为质数以及最大质因数,用线筛可完成 然后枚举X1X_1X1​,求针对每个X1X_1X1​的X0X_0X0​的最小值 Co...

2019-08-28 12:00:43 247 2

原创 【题解】CF1157E:Minimum Array

原题传送门 刚刚自己研究出了一个小技巧 对于每一个aia_iai​,找n−ain-a_in−ai​是否存在,不存在就找n−ai+1,n−ai+2n-a_i+1,n-a_i+2n−ai​+1,n−ai​+2…以此类推 想到用链表去实现一个查询的操作,但是一个一个找还是太慢,这让我想到了并查集 并查集的路径压缩的思路正好可以用在这里优化链表的查找 Code: #include <bits/std...

2019-08-28 11:38:51 212

原创 【题解】CF91B:Queue

原题传送门 非常简单的题目 对于每个数,需要找到比自己小的下标最大的数,直接离散化然后开个以权值为下标的树状数组维护一下实际下标最大值就完事了 Code: #include <bits/stdc++.h> #define maxn 100010 #define _ 0 using namespace std; struct data{ int x, id; }b[maxn]; in...

2019-08-27 17:42:01 293

原创 【题解】CF166E:Tetrahedron

原题传送门 水DP 设计状态,fif_ifi​表示走了i步目前在顶端的方案数,gig_igi​表示走了i步目前不在顶端的方案数 方程fi=3gi−1,gi=fi−1+2gi−1f_i=3g_{i-1},g_i=f_{i-1}+2g_{i-1}fi​=3gi−1​,gi​=fi−1​+2gi−1​ 发现还可以滚动掉,爽啊 Code: #include <bits/stdc++.h> #d...

2019-08-27 17:23:24 237

原创 【题解】CF118D:Caesar's Legions

原题传送门 不知为何,这道题目我写的其实并不爽快 显然的dpdpdp状态,dpi,j,k,ldp_{i,j,k,l}dpi,j,k,l​表示用了i个1,j个2,末尾有连续k个1,l个2 显然k与l中肯定其中一个为0,一个不为0,从这可得到边界 转移我便用了刷表法,对dpi,j,k,ldp_{i,j,k,l}dpi,j,k,l​进行讨论 k!=0,l=0:dpi,j,k,l−&gt;dpi...

2019-08-27 11:55:11 332

原创 【题解】CF1174B:Ehab Is an Odd Person

原题传送门 感性理解得到一个超级大结论:如果存在两个数奇偶性不同,整个数列就能排序;否则直接输出 Code: #include <bits/stdc++.h> #define maxn 100010 using namespace std; int n, x, a[maxn]; inline int read(){ int s = 0, w = 1; char c = getch...

2019-08-27 11:38:18 308

原创 【题解】51nod1074:约瑟夫环V2

原题传送门 具体数学上看的一愣一愣的,自己瞎想了想好像明白了 假设现在有nnn个人,先是淘汰第kkk个人,剩下(n−1)(n-1)(n−1)个人是这样排列的:k+1,k+2,...,n,1,2,...,k−2,k−1k+1,k+2,...,n,1,2,...,k-2,k-1k+1,k+2,...,n,1,2,...,k−2,k−1 若是我们知道(n−1)(n-1)(n−1)个人中幸存者是xxx,那...

2019-08-26 18:15:47 227

原创 【学习笔记】DFS与BFS

这是OI竞赛中两个基础算法,在此做一个简略的总结 DFS 全名深度优先搜索,顾名思义,是深度优先,一条路走到黑的做法 树、图论相关的问题中常用到DFSDFSDFS遍历处理信息 算法用处: 暴力,一般题目总会在最低档的部分分设置用最无脑的dfs解决 遍历,用处比较大 BFS 全名宽度优先搜索 一般的套路是设置状态,既然是宽度优先,那么同一个状态越早到达越优 所以时空复杂度都是状态总数,常数不论 ...

2019-08-26 12:32:50 230

原创 【题解】LuoGu1301:魔鬼之城

原题传送门 简单bfs 想想状态数,visx,y,dvis_{x,y,d}visx,y,d​表示到(x,y)(x,y)(x,y)并且方向为ddd 可以做到不重不漏,复杂度O(nmd)O(nmd)O(nmd)可以接受 Code: #include <bits/stdc++.h> #define maxn 110 using namespace std; int dx[8] = {-1, ...

2019-08-26 12:21:33 186

原创 【题解】CF1150B:Tiling Challenge

原题传送门 普及T2难度 枚举整个矩阵,如果有’.’,把它作为十字架的顶端放置,若不合法直接NO 都能合法就YES Code: #include <bits/stdc++.h> #define maxn 110 using namespace std; int n, a[maxn][maxn]; inline int get(){ char c = getchar(); for ...

2019-08-26 11:24:02 179

原创 【题解】LuoGu5514:[MtOI2019]永夜的报应

原题传送门 题目非常的诡异,做法更是诡异 出看题,¥#%¥#@#%¥@什么鬼?说好的签到题? 然后看样例,贼心不死的把所有数xorxorxor了一下之后,@%#¥%#¥@#@¥#¥这不是答案了吗? 好吧,只能接受了答案就是所有数xorxorxor的事实了,可是我不会证啊!!! 感性理解一下吧。。。 由于太过弱智,代码也就不放了 ...

2019-08-25 20:39:55 222

原创 【题解】CF1155C:Alarm Clocks Everywhere

原题传送门 显而易见一个ppp合法的充要条件是所有xxx在modpmodpmodp意义下同余 很难做,再想想 既然同余的话是不是两个相减就是ppp的倍数 那么又因为xxx递增,把相邻xxx的差的gcdgcdgcd求出来 看看哪个ppp整除那个gcdgcdgcd就好了 Code: #include <bits/stdc++.h> #define LL long long using na...

2019-08-25 20:33:08 202

原创 【题解】CF449C:Jzzhu and Apples

原题传送门 先把质数弄出来 从大到小枚举质数x,统计出所有x的倍数 如果个数是偶数就直接匹配 若是奇数把2x2x2x扔掉,剩下的匹配 那么2的倍数肯定只能减减漏了,剩下2的倍数个数仍然是奇数的话最终也只是扔掉一个数 所以这种方案是最优的 那可不可能存在一个数都不扔掉的方案?不可能 因为这种方案最坏情况是扔掉一个数,那孤掌难鸣,肯定不可能组成一对啊 Code: #include <bits/s...

2019-08-24 18:19:50 181

原创 【题解】CF474D:Flowers

原题传送门 dp水题,切掉的那种 dpi=dpi−1+dpi−kdp_i=dp_{i-1}+dp_{i-k}dpi​=dpi−1​+dpi−k​ 再用前缀和统计一下sumi=∑j=1idpjsum_i=\sum_{j=1}^{i}dp_jsumi​=∑j=1i​dpj​ 对于每个询问[l,r][l,r][l,r]答案便是sumr−suml−1sum_r-sum_{l-1}sumr​−suml−1​...

2019-08-23 17:43:31 347

原创 慈溪中学集训总结

一周前集训结束了,现在才抽出时间做个简略的总结 如果说绍兴的集训是我个人一次很大的提升,这次集训算是一个巩固 两次及其不容易的过了题目拿下rk4,好几次打崩rk窜到40+,以及最后一段时期稳定rk14、15 总的来说还算可以,一开始心态确实崩了,第一场就rk4膨胀导致的失利让我认识到自己还有那么多的不足 后来也是专门打暴力,只有一次做出某一题幸运拿到rk4,其余rk非常稳定,而且在我前面的都过了题...

2019-08-23 17:30:48 211

原创 【题解】CF760B:Frodo and pillows

原题传送门 还是挺好做的吧 首先可以想到二分答案 想一想枕头个数如何分配最好,自然是呈现金字塔形式分配 即k号床最多,旁边两个床少一个,再旁边少两个…… check就是直接数学计算一下,用等差数列求和,注意一下细节处理 Code: #include <bits/stdc++.h> #define LL long long using namespace std; LL n, m, k;...

2019-08-23 11:52:21 201

原创 【题解】CF732B:Cormen — The Best Friend Of a Man

原题传送门 非常简单的一个贪心 让mmm减去上一个值,如果大于自己就改变 Code: #include <bits/stdc++.h> #define maxn 1010 using namespace std; int n, m, a[maxn], ans; inline int read(){ int s = 0, w = 1; char c = getchar(); fo...

2019-08-23 11:19:57 190

原创 【题解】CF500B:New Year Permutation

原题传送门 怎么说呢,输入就需要O(n2)O(n^2)O(n2)的题目有点那个了。。 祭出一个基础算法——并查集!!! 仿照缩点(强连通分量)的想法,如果一个点的集合,对于集合中的每一个点都能找到另一个集合中的点可以与之交换 那么这个点的集合可看成一个点,用并查集维护一下连通性 对于每一个位置,找当下(vis=0)(vis=0)(vis=0)最小的并且与这个位置联通的点输出 Code: #incl...

2019-08-22 17:52:24 182

原创 【题解】CF498A:Crazy Town

原题传送门 跟实数运算有关的题目做起来总是很方。。。 就是求多少条直线跟线段有交点 针对每条直线求出解析式 ax+by+c=0−−&gt;y=−abx−cbax+by+c=0--&gt;y=-\frac{a}{b}x-\frac{c}{b}ax+by+c=0−−>y=−ba​x−bc​ x1,x2x1,x2x1,x2代进去,只要两个对应值和y1,y2y1,y2y1,y2大小关...

2019-08-22 17:36:08 230

原创 【题解】CF293A:Weird Game

原题传送门 这应该算是一个比较基础得博弈把 把1分成两类, 某一个位置上只有一行拥有1 某一个位置上两行都有1 这两类1应该是可以分开来讨论的,不相互影响,先统计一下两种1的个数 一开始可以令两个人都尽可能取两行都有的1 然后如果两行都有的1的个数是奇数的话先手改变 然后的阶段是两个人尽可能取自己这一行有的1 那么为了方便,如果先手在上一个阶段改变,我让第二个人先取一个1,把先手改回来 然后讨...

2019-08-22 12:37:25 318

原创 【题解】CF268C:Beautiful Sets of Points

原题传送门 令x=min(n,m)+1x=min(n,m)+1x=min(n,m)+1 可以发现最多能放(x+1)(x+1)(x+1)个点 因为每行最多放一个 如何构造达到最大值?放一条斜线就好了 比如(0,x)(1,x−1)...(x,0)(0,x)(1,x-1)...(x,0)(0,x)(1,x−1)...(x,0) Code: #include <bits/stdc++.h> u...

2019-08-22 11:46:46 168

原创 BZOJ5442:[Ceoi2018]Global warming

原题传送门 从头开始跑一遍最长上升 从尾开始跑一遍最长下降 把头尾信息综合起来 如何综合,我采用树状数组维护最值,先用二分查找到当前数对应的地方,然后更新 整个代码我用了三只树状数组,麻烦的一点是需要离散化,由于我马力不够一个细节点没处理好wa了一发 Code: #include <bits/stdc++.h> #define maxn 200010 #define LL long l...

2019-08-21 09:50:44 221

原创 【题解】LuoGu5307:[COCI2019] Mobitel

原题传送门 一个很普通的dp dpi,j,kdp_{i,j,k}dpi,j,k​表示第i行第j列乘积为k的路径条数 状态冗余太多,并且不优,需要优化一下 首先可以滚掉iii这一维,接下来考虑把kkk这一维优化掉 一个定理[[nx]y]=[nxy][\frac{[\frac{n}{x}]}{y}]=[\frac{n}{xy}][y[xn​]​]=[xyn​] dp状态修改为dpi,j,kdp_{i,...

2019-08-21 09:41:24 320

原创 【题解】LuoGu1766:液体滴落

原题传送门 一道比较烦的模拟题 首先求出每条线的解析式 发现本题支持O(n2)O(n^2)O(n2)做法,直接上模拟 每次枚举每条线,把横坐标代入,找到当前水滴掉落可以落到的最高的线上 然后让水滴滚到线两端较低的那端,重复此操作就行了 Code: #include <bits/stdc++.h> #define maxn 10010 #define LL long long using...

2019-08-19 21:28:36 196

原创 【题解】LuoGu1325:雷达安装

原题传送门 对于每个小岛可以算出在x轴上能建立的最右边的雷达 按照坐标从小到大排序,模拟一遍即可 Code: #include <bits/stdc++.h> #define maxn 10010 #define LL long long using namespace std; struct node{ LL x, y; double z; }a[maxn]; LL n, d; ...

2019-08-19 20:40:27 174

原创 【题解】LuoGu2112:鸿雁传书

原题传送门 很简单的dp题目,dpk,i=min(dpk−1,j+(sum(j+1,i)−ave)2)dp_{k,i}=min(dp_{k-1,j}+(sum(j+1,i)-ave)^2)dpk,i​=min(dpk−1,j​+(sum(j+1,i)−ave)2) 这道题直接来就好了,可以用斜率优化优化成O(nk)O(nk)O(nk)的,然而不需要 Code: #include <bits/...

2019-08-19 19:47:30 158

原创 【题解】LuoGu1133:教主的花园

原题传送门 显然的dp 设计状态dpi,j,kdp_{i,j,k}dpi,j,k​表示第iii棵树,种了高度为10j10j10j的树,高度关系是k(0/1)k(0/1)k(0/1),0表示比两边低,1表示比两边高 转移方程dpi,j,k=max(dpi−1,jj,kXor1+ai,j)dp_{i,j,k}=max(dp_{i-1,jj,kXor1}+a_{i,j})dpi,j,k​=max(dpi...

2019-08-18 20:14:16 159

原创 LuoGu3197:[HNOI2008]越狱

原题传送门 随便选宗教,方案数mnm^nmn 不会发生越狱的情况,第一个人选mmm种宗教,后面(n−1)(n-1)(n−1)个人都能选(m−1)(m-1)(m−1)种宗教,方案数为m∗(m−1)n−1m*(m-1)^{n-1}m∗(m−1)n−1 减一减,答案为mn−m∗(m−1)n−1m^n-m*(m-1)^{n-1}mn−m∗(m−1)n−1 快速幂搞一搞即可,注意longlong Code:...

2019-08-17 21:25:33 150

原创 【题解】LuoGu2340:奶牛会展

原题传送门 话说我是第一次做c++处理数组负下标的题目 可以很快的想到用智商作为下标,dpidp_idpi​表示智商和为iii的最大情商和 直接上01背包 对于智商sss为正,大到小枚举,为负,小到大枚举,主要是要满足01背包 由样例得知,中途智商/情商和<0是可以接受的,存在逆袭情况 所以dp数组需要记录负下标 c++无法负下标,所以全部下标加上400000400000400000 因为和...

2019-08-17 21:04:49 278

原创 【题解】LuoGu2607:[ZJOI2008]骑士

原题传送门 基环树的树形dp 对于处理基环树,我本来认为只能先把树的部分处理好之后,在环上把信息综合起来,不过这题非常麻烦 基环树有另一种处理信息的方法,就是断环 把环找出来之后,从中间断掉他,分别以两个断点为根做树形dp,取答案大的那个累加到最终答案里 Code: #include <bits/stdc++.h> #define LL long long #define maxn 1...

2019-08-16 12:28:24 138

原创 【题解】慈溪中学-8.15-T1

传送门 二分,枚举答案 如果验证是否能给mid个充电器都充电 那当然是给更安全的充电器充电 然后对于每个充电器是否能充电,总是先尽可能插插线板,然后充电 Code: #include <bits/stdc++.h> #define maxn 400010 #define LL long long using namespace std; int n, m, a[maxn], b[max...

2019-08-16 08:05:04 213

原创 【题解】慈溪中学-8.15-T2

传送门 根据卢卡斯定理,CnmModC_{n}^{m} ModCnm​Mod p=C[np][mp]Modp=C_{[\frac{n}{p}]}^{[\frac{m}{p}]}Modp=C[pn​][pm​]​Mod p∗CnModpmModpp*C_{nModp}^{mModp}p∗CnModpmModp​ 最终分成一堆小于ppp的数 读入的数可以看成p进制,如果某个数在p进制下有一位大于这个数...

2019-08-16 07:57:05 171

原创 【题解】慈溪中学-8.14-T2

传送门 貌似是一种叫2−SAT2-SAT2−SAT的东西 我理解是一种建图思想 分两层考虑 选一个对的就要选两个错的,这样来建图 然后缩点 若一个点对应在两层的被缩在同一点,矛盾,输出-1 否则正常输出 Code: #include <bits/stdc++.h> #define maxn 100010 using namespace std; struct Edge{ int to...

2019-08-15 08:07:07 163

可莉 逃跑的太阳 动态桌面.apk

可莉 逃跑的太阳 动态桌面.apk

2022-09-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除