自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(70)
  • 收藏
  • 关注

转载 Another Filling the Grid

E. Another Filling the Grid参考:Codeforces Round #589 (Div. 2)-E. Another Filling the Grid-容斥定理容斥这个东西可以理解,但是运用到实际的时候,还是觉得有点迷迷糊糊的,不知道套公式会不会是一种可行的办法。是时候也得把以前的知识温习一下了....具体的思路看参考的博客就可以理解了。代码:...

2019-10-04 14:14:00 294

转载 Complete Tripartite

D - Complete Tripartite思路:这个题是个染色问题。理解题意就差不多写出来一半了。开始的时候还想用离散化来储存每个点的状态,即它连接的点有哪些,但很无奈,点太多了,long long范围内肯定存不完,于是想到用python来写,但是 py 也没有很熟练.....便放弃了。需要注意的:要统计总共有多少颜色,不然会漏掉只有两种颜色的情况,这种情况是输出-1的。还有...

2019-10-02 14:54:00 195

转载 Primes and Multiplication

C - Primes and Multiplication思路:找到x的所有质数因子,用一个vector储存起来,然后对于每一个质因子来说,我们要找到它对最后的答案的贡献的大小,即要找到它在最后的乘积中出现了多少次。求解方法:for(auto i:v){ ll cnt=0; ll temp=n/i; while(temp) cnt+=te...

2019-10-01 23:10:00 140

转载 Konrad and Company Evaluation

F. Konrad and Company Evaluation参考:[codeforces 1230F]Konrad and Company Evaluation-暴力思路:题意分析见参考博客。因为求的是三元组的个数,所以在保存的时候的时候就保存为有向图,让工资少的员工指向工资多的员工,那么求三元组的时候,只需要以三元组中间的那个员工为参考点来求解即可。ll cal(int...

2019-10-01 15:49:00 232

转载 Kamil and Making a Stream

E. Kamil and Making a Stream参考:Codeforces Round #588 (Div. 2)-E. Kamil and Making a Stream-求树上同一直径上两两节点之间gcd的和思路:求的就是1~n之间所有最短路的gcd之和。用一个set来储存每一个结点可能的gcd,另外再用一个三维的map来记录每一个结点的每一个gcd出现的次数。...

2019-09-29 22:46:00 219

转载 Marcin and Training Camp

D. Marcin and Training Camp参考:D. Marcin and Training Camp思路:首先先确定最大成员的\(a_i\),因为不能够某个成员i认为自己比其他所有成员都厉害,所以必须要有一个人j来压制他。压制有两种方法:①\(a_j\)跟他一样大 ②\({a_i}\&{a_j}=a_i\),即\(a_j\)可以将\(a_i\)包括。但是此...

2019-09-26 19:23:00 181

转载 Anadi and Domino

C - Anadi and Domino参考:Anadi and Domino思路:分为两种情况:①n<=6,这个时候肯定可以保证降所有的边都放上一张多米诺牌,那么答案就是m②n==7,在这种情况下肯定会出现某两个点a和b是靠一张两端同点数的多米诺牌连接起来的,而这个时候如果又有一个点同时与这两个点a和b都有一条边,那么,只能够在其中一条边上放多米诺牌,而另外一边不可...

2019-09-25 18:32:00 122

转载 White Sheet

C - White Sheet思路:先看代码,分成了四个条件。第一个和第二个表示的都是当白矩形存在某个黑矩形内部的情况。另外就是:白矩形位于两个黑矩形的并集区域。即可分为两种情况,一种是白矩形位于竖的区域(条件三),上图:那么黄色区域就是判断范围另一种是横的区域(条件四):黄色区域即判断范围。代码:x1,y1,x2,y2=map(int,input().split...

2019-09-22 15:31:00 169

转载 Into Blocks (easy version)

G1 - Into Blocks (easy version)参考:Codeforces Round #584 - Dasha Code Championship - Elimination Round (rated, open for everyone, Div. 1 + Div. 2) G1. Into Blocks (easy version)思路:先把数据预处理一遍,找到每...

2019-09-21 12:34:00 186

转载 Cow and Snacks

​ D. Cow and Snacks参考:Codeforces 1209D. Cow and Snacks思路:利用并查集,构建一个生成树,然后树的边数就是能够开心的客人的人数。用一个条件find(u)!=find(v)(我在代码里反了一下),来统计某一种味道的菜是否已经被吃掉,如果等于,则证明已经被吃掉。另外:find()函数一定要记得记忆化,不然很容易超时代码:/...

2019-09-18 16:59:00 209

转载 Paint the Digits

C - Paint the Digits思路:这道题就只需要利用单调栈,将整个数组扫一遍,求得的最后的栈内元素(要求全部小于非栈内元素)的颜色为1,其余为2那么怎么实现呢?求最后的栈内元素(要求全部小于非栈内元素)的方法:用一个变量记录下最小的被交换的栈元素(这里需要将由于元素相等而交换的情况派除在外)int first=inf;for(int i=1;i<=n;++i)...

2019-09-15 14:55:00 165

转载 Path

Path参考:[2019杭电多校第一场][hdu6582]Path(最短路&&最小割)思路:这道题需要用到最短路和最小割。首先需要用最短路,找到最短的路径,然后再利用dis[e[j].s]+e[j].w==dis[e[j].t这个条件,重新建图,在重新建的图当中,保证了所有的路径长度都是最短路,那么便可以进行最小割的操作,最小割即最大流,所以,可以对新建的图写d...

2019-09-14 17:00:00 77

转载 最大流=最小割

最大流=最小割参考:【转载】最小割可以证得最大流的值即为最小割最大流可由dinic算法求得转载于:https://www.cnblogs.com/CADCADCAD/p/11519238.html

2019-09-14 15:19:00 97

转载 LaTeX常用数学符号

常用数学符号的 LaTeX 表示方法转载于:https://www.cnblogs.com/CADCADCAD/p/11486020.html

2019-09-08 14:20:00 232

转载 站军姿

D. 站军姿参考:随机在圆上生成n个点,这n个点在同一半圆的概率是多少?思路:直接利用公式,随机在圆上生成n个点,这n个点在同一半圆的概率是\(\frac{n}{2^{n-1}}\) ,求逆元的时候直接用费马小定理即可代码:// Created by CAD on 2019/9/8.#include <bits/stdc++.h>#define ll l...

2019-09-08 14:16:00 150

转载 Fibonacci again and again

Fibonacci again and again参考:SG函数和SG定理【详解】思路:这是比较简单的SG定理的运用,SG定理——游戏和的SG函数等于各个游戏SG函数的Nim和如果一个位置x的SG值为0,那么这个点就为必败点P,否则就是必胜点N必败点:用N表示必胜点:用P表示对于任意状态x , 定义SG(x) = mex(S),其中 S 是 x 后继状态的SG函数值的集合。...

2019-09-07 18:29:00 102

转载 巴比博弈

巴比博弈参考:博弈论及算法实现只有一堆n个物品,两个人从轮流中取出(1~m)个,最后取光者胜。考虑到 若n=m+1那么 第一个人不论如何取都不能取胜。进一步我们发现 若 n=k(m+1)+r,先取者拿走r个,那么后者再拿(1~m)个n=(k-1)*(m+1)+r; 先取者再拿走r个 最后总能造成 剩下n=m+1的局面。因此,此时先手有必赢策略。相对应的,若n=k*(m+1...

2019-09-07 18:18:00 162

转载 火烧赤壁

火烧赤壁隔了一天再来理解就想对来说舒服多了,也不知道是不是因为昨天太忙了没有专心....参考:火烧赤壁 题解火烧赤壁题解思路:首先必须要明白一点,这道题需要将船只的位置标记出来,但是看到数据为(-1e9,1e9)就可以知道,很明显直接用一个数组来储存是不可能的。但是因为数据的个数不多,所以我们就可以考虑使用离散化来标记数据。代码:#include <iostr...

2019-09-06 19:27:00 256

转载 暑假还有两天

暑假还有两天总之,感觉这个暑假还是过得挺充实的吧,从6月底考完期末就一直在学校没有回家,唉,越是回不了家,才越感受到回家的弥足珍贵吧。上个寒假划了一寒假的水,现在想来真的很后悔,前几天偶然间翻到myc学姐在寒假集训的时候给我们做的ppt,才发现自己错过了很多学习的机会,其实很多自己在暑假不断在网上找、自己摸索出来的东西,远在寒假集训的时候,学长学姐们就已经帮我们找到了捷径,并且把现成...

2019-08-28 16:00:00 61

转载 关于lower_bound()和upper_bound()

关于lower_bound()和upper_bound():参考:关于lower_bound( )和upper_bound( )的常见用法注意:查找的数组必须要是排好序的。因为,它们查找的方式也是二分查找,所以,复杂度为log(n)①从小到大排序lower_bound(begin,end,num):从数组的begin位置到end-1位置二分查找第一个大于或等于num的数字,找到...

2019-08-26 14:15:00 63

转载 Remainder Problem

F. Remainder Problem这个其实并不难,只是看看考察有没有分块的思路思路:用一个ans[i][j]来记录所有k=(1~5e5)中所有a[k]%i==j的和,在查询的时候可以达到复杂度位O(1)当然因为数据很大,不能够分很多块,而且也没有必要分很多块,因为如果在进行2操作的时候,如果x=1e5,y=1e5-1,那么在数据范围内只有五个数满足条件,可以每次跳过x个...

2019-08-24 14:08:00 148

转载 XOR Guessing

​ E. XOR Guessing第一次做这种交互题,刚开始还看不懂,现在已经差不多可以理解了,清空缓存区用cout<<endl;即可,需要注意的是,如果用fflush(stdout)来清空缓存区,注意不能关同步思路:最多可能是\(2^{14}-1\)总共14位数,最多可以询问两次,那么只需要分别求出其前7位和后7位即可,1~100与 x 取&,那么我们就可...

2019-08-23 16:58:00 146

转载 负数的位运算源码反码补码取模介绍

参考:负数的位运算原码, 反码, 补码 详解一直都不是很懂负数的位运算,还有反码,补码,源码这些,总结一下关于反码,补码,源码的定义看参考博客在每一个二进制数中,最高位是用来表示它的符号的,负数为1,正数为0原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值比如如果是8位二进制:[+1](10)= 0000 0001(2)[-1](10)= 10...

2019-08-23 16:31:00 369

转载 Number Of Permutations

Number Of Permutations思路:利用容斥,首先所有可能的排列肯定是fac[n],然后可能会有三种 bad 的情况:①第一个元素的排列是非递减②第二种是第二个元素的排列是非递减③这两个可能出现的重叠情况,意思就是说同时导致①②成立这个时候我们利用容斥的思想,用fac[n]-①-②+③即可我们把所有的pair按照第一个元素优先排列的方式把所有的pair sor...

2019-08-23 13:41:00 146

转载 打地鼠Ⅱ

打地鼠Ⅱ这个也是一个 dp ,可能是我 dp 的题写的太少了吧,后面得多练练 dp 的题。思路:把所有的数据存于一个结构体中,然后进行排序,排序的规则是,时间短的优先,分数高的优先。dp[i]:表示打i个地鼠可以得到的最大分数最后求ans的时候需要在所有的dp[]中找到最大值,因为,可能出现打的地鼠较少但是分数更高的情况两个for一个是遍历每一只地鼠,一个是在地鼠的...

2019-08-21 16:41:00 88

转载 聚餐

聚餐赛后来看真的感觉是一道很简单的题,其实赛中就已经有点思路了,但是 wa 了很多发,可能是因为代码改过了很多版所以思路有一点乱吧,补题的时候就是把整个题的思路都理清了之后才开始敲的代码,思路理顺了之后,写起来就很流畅了,几分钟就写完了,一发 Ac。要是下次还是一直 wa 的话就尝试一下,重头再敲一份代码吧,说不定效果会好很多。思路:因为这道题数据不大\(1≤n≤1000,1≤...

2019-08-21 13:43:00 126

转载 小菜吃鸡腿

小菜吃鸡腿特别裸的区间 dp ,而且之前还写过一样的题,居然没写出来,55555,主要还是因为把区间 dp 的思路给忘了区间 dp 的主要思路:假设有一段区间[l,r],当l和r缩为最小的单位区间的时候肯定会有一个初始值,这个是无疑的,然后当[l,r]的区间长度扩大的时候,尝试去在区间内找一个k使得这整个区间[l,r]的值为最大(即满足题目要求)。整理一下区间 dp 的几...

2019-08-21 12:39:00 176

转载 最近的一些感受

总结一下今天打的这两场排名赛:看到题目千万不要着急,不要为了去抢一血而不小心 wa 几发,题目一定要读仔细,揣摩可能出现的特殊情况,总之敲题之前一定要想清楚,然后再开始动手,这样效率会快很多,也能够避免很多没有必要的失误关于读错题:这个真的是硬伤,我要哭了,刚A完第一题的时候还是 rank2 然后就开始看 B 题觉得有一点麻烦先跳过,然后就开始看 C 题,刚开始看的时候觉得...

2019-08-20 23:27:00 59

转载 Dijkstra

思路:每一次枚举当前没有枚举过的d[]值最小的点x,然后对该结点进行标记,然后再分别遍历x的每一条边,用d[x]去更新d[y],d[y]=min(d[y],d[x]+w[x][y]),w[x][y]表示 x 与 y 之间的边的权重,具体 Dijkstra 的结构实际上是跟 bfs 差不多的,可以利用一个优先队列来对 Dijkstra 进行优化。模板题:[JLOI2011]飞行路...

2019-08-20 11:53:00 56

转载 Floyd

Floyd参考:Floyd 算法 第一篇Floyed题解模板题:寻宝之路Clear And Present Danger 牛栏Cow HurdlesFloyd的思路:首先 \(f[i][j]\) 表示的是 \(i\) 到 \(j\) 的最短路径的长度, \(f[i][j]\)初始化的时候,如果 \(i\) 和 \(j\) 有一条直接相连的边,长为 \(w\) ,那么就让 \(f[...

2019-08-19 23:38:00 72

转载 小球与盒子

参考:当小球遇上盒子默认问题:把 n 个小球放到 m 个盒子里,分别有三项要求:①球是否相同 ②盒子是否相同 ③能否有空盒。1.球相同,盒子不同,不能有空盒利用插板法,n 个小球中间会存在 n-1 个空,用 m-1 块板插入这些空中,可以将 n 个小球分为 m 块,因此:\[ans=C_{n−1}^{m−1}\]2.球相同,盒子不同,可以有空盒我们现在假设有 m+...

2019-08-18 14:42:00 455

转载 Count the Buildings

K - Count the Buildings参考:Count the Buildings思路可以借鉴,但是代码略有问题写的时候 re 了 9 发,然后把变量定义的顺序换了一下居然 A 了,以为这个是个骚操作,最后才发现是真的会越界,当 f+b>n+2 的时候就有可能会发生越界,而这种情况,if 判断一下就好代码:// Created by CAD on 2019/8...

2019-08-17 23:25:00 84

转载 组合数

ll c[1005][1005]; const int mod=1e9+7; for (int i=0; i<=1000; ++i){ c[i][0]=c[i][i]=1; for (int j=1; j<i; ++j) c[i][j]=(c[i-1][j]+c[i-1][j-1])%mod;}转载于:https://ww...

2019-08-17 18:42:00 47

转载 Buy the Ticket

Buy the Ticket参考:Buy the Ticket上面博客中好像 n 和 m 的意思写反了,不过问题不大,反着输入就好了,题目中说 n 是 50 的人数,m 是 100 的人数,这里反了一下。另外还需要用到高精度。公式(m 是 50 的人数,n 是 100 的人数):\[(\binom {m+n}{n}-\binom {m+n}{m+1})*m!*n!\]...

2019-08-17 10:07:00 454

转载 完全高精度

from kuangbin包含了 + - * / ^ % = > >> << == 运算符的重载,可用int char* BigNum调用构造函数#define MAXN 9999#define MAXSIZE 100000#define DLEN 4class BigNum{public: int a[MAXSIZE]; ...

2019-08-17 09:47:00 69

转载 ACM技能表

看看就好了(滑稽)数据结构栈栈单调栈队列一般队列优先队列/单调队列循环队列双端队列链表一般链表循环链表双向链表块状链表十字链表邻接表/邻接矩阵邻接表邻接多重表Hash表(哈希表)Hash表字符串Hash二叉树一般二叉树遍历二叉树[ ] 先序遍历二叉树[ ] 中序遍历二叉树[ ] 后序遍历二叉树Huffm...

2019-08-16 00:48:00 157

转载 Game of Connections

Game of Connections这个题也是直接求卡特兰数,不过数据有一点大,不能够直接求,因为杭电不能交 python 不然我就用 python 写了....对于这么大的数据,还不能写 python 就只能用高精度啦代码:// Created by CAD on 2019/8/15.#include <bits/stdc++.h>#define mst(...

2019-08-15 23:12:00 144

转载 高精度

From kuangbin支持加法,乘法,int char*对 BigInt 初始化#define mst(name, value) memset(name,value,sizeof(name))struct BigInt { const static int mod=1e4; const static int blo=4; int a[600], le...

2019-08-15 22:46:00 63

转载 小兔的棋盘

D - 小兔的棋盘思路:很裸的卡特兰数但如果直接上,会爆 long long,所以需要用一些技巧两种写法:1.使用卡特兰数最基本的公式:\[f(n)=\displaystyle\sum_{i=0}^{n-1} f(i)*f(n-i-1)\]注:f(0)=1,f(1)=1代码:// Created by CAD on 2019/8/15.#include &lt...

2019-08-15 16:23:00 76

转载 卡特兰数

参考:卡特兰数很经典的问题有:合法括号匹配、矩阵从左下角到右上角不走对角线、二叉树构成问题、凸多边形的三角形划分等等一般会用到的公式有\[f(n)=\displaystyle\sum_{i=0}^{n-1} f(i)*f(n-i-1)\]注:f(0)=1,f(1)=1通项公式:\[f(n)=\binom {2n} n-\binom {2n} {n-1}\]或者是...

2019-08-15 16:17:00 68

空空如也

空空如也

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

TA关注的人

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