-
伊吹萃香_(虫洞)
网上竟然没有能看的懂的解释,我也是醉了搞了好几个小时才找着一份代码,硬是看懂了思路:记一个dis[i][j]数组,i表示节点,j表示时间是奇数还是偶数,0是偶数,1是奇数某一个点的状态是由上一秒转移来的,而这两秒一定一个是奇数一个是偶数,所以1状态由0转移,0状态由1转移,黑洞需要翻转,而奇数秒的状态一定是被反转了的,偶数是没反转的,而这个可以用异或来搞定因为0^1=1,1^1==0而判断起点也是 …
-
dp专题
互不侵犯的king状压dp题每一行放不放国王可以用1010010来表示所以每一行的状态可以看成一个二进制数这样n是小于9的,可以把小于2^n,(因为2^9是512,很小)的数打表存出来把自己和自己冲突的筛掉,然后记下有多少1,判断他们是否冲突。预处理完了,接下来是dp了动态转移方程:dp[i][q+t[j]][a[j]]=Σdp[i-1][q][a[i]]123456789101112131415 …
-
搜索专题
会场预约找一个最小的r加进集合12345678910111213141516171819202122232425262728293031323334353637383940414243444546#include <cstdio> #include <algorithm> #include<iostream> #define maxn 1000000 # …
-
模拟水题
…
-
并查集专题
洛谷P3144 [USACO16OPEN]关闭农场关闭农场离线的反着的并查集看看在不在一个集合内1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950#include<cstdio>#include<queue>#include<cstrin …
-
优先队列
较简单的排队打水,合并果子。。。 合并序列这是一个堆的问题,就用stl里的优先队列完美搞掉有两个序列先sort一下在算出最小的a[1]+b[1]…..a[1]+b[n]为一组删掉+如a[i][j+1]放进去找最小的k个12345678910111213141516171819202122232425262728293031323334353637383940#include<cstdio&g …
-
关于二维偏序的题
简单的逆序对可以用树状数组搞就是插入时,找前面比他大的和插入时弄一个桶,记下有多少个数然后对后面的进行区间求和,这个可以用树状数组搞最后求一个总和1234567891011121314151617181920212223242526272829303132#include<iostream>#include<queue>#include<algorithm>#i …
-
day6
cyclic这个题直接模拟,先把k%一下防止过大然后直接做就行了 1234567891011121314151617181920212223242526#include<cstdio>#include<algorithm>#include<iostream>#include<cmath>#define ll long longusing namesp …
-
day5
exam简单的贪心注意细节,long long就可以ac了123456789101112131415161718192021222324252627282930313233343536373839#include<cstdio>#include<iostream>#include<algorithm>using namespace std;#define D & …
-
摄像头
拓补排序找入度为零的,就是没被监视的,删掉继续找入度为零的,继续删直到找不到输出答案 1234567891011121314151617181920212223242526272829303132333435363738394041#include<cstdio>#include<algorithm>#include<iostream>#include<c …