随笔分类 -  all—好题

上一页 1 ··· 5 6 7 8 9 10 11 12 13 下一页
摘要:dfs会T,只好正反两遍拓扑了…… cpp include include include include using namespace std; const int N=100005; int n,m,h[N],cnt,d1[N],d2[N]; double f[N],p[N],s[N],ans 阅读全文
posted @ 2018-09-21 17:43 lokiii 阅读(224) 评论(0) 推荐(0)
摘要:![](https://img2018.cnblogs.com/blog/1242898/201809/1242898-20180920174813398-1306255611.png) ```cpp #include #include #include using namespace std; const int N=1000005; int n,a[N],b[N]; long long m,... 阅读全文
posted @ 2018-09-20 17:49 lokiii 阅读(239) 评论(0) 推荐(0)
该文被密码保护。
posted @ 2018-09-20 09:24 lokiii 阅读(1) 评论(0) 推荐(0)
摘要:一看区间操作,很容易想到差分 所以就是先差分,然后为了保证最小步数,把政府差分抵消,也就相当于原数组区间加减 第二问,因为差分数组抵消之后不为0就需要使用n+1的虚拟位置,而这个的值其实没有,所以我们可以在这个抵消后的数的范围内随意操作,也就是任意取值 阅读全文
posted @ 2018-09-19 17:52 lokiii 阅读(200) 评论(0) 推荐(0)
摘要:Wall是个好东西,要不然我至死都看不出来我把(b[i]+b[j])写成了(b[i],b[j])…… 还是来自lyd的题解: (其实原来课件第一行式子写错了没有 1,然而我用sai手画了一个上去hhhh,板绘选手表示鼠绘真难) cpp include include include using na 阅读全文
posted @ 2018-09-19 09:08 lokiii 阅读(175) 评论(0) 推荐(0)
摘要:二分答案,注意l是max(a[i]+a[i+1]),r是sum_a 判断的时候用dp,设f[i]为i与1最少的相同颜色数,g[i]为i与1最多的相同颜色数,转移是f[i]=max(a[i] (w a[i 1] (a[1] g[i 1])),0),g[i]=min(a[1] f[i 1],a[i]); 阅读全文
posted @ 2018-09-18 16:45 lokiii 阅读(182) 评论(0) 推荐(0)
摘要:来自lyd课件 发现s和last(s),next(s)成树结构,然后把式子化简成kx+b的形式,做树形dp即可 cpp include include include using namespace std; int n,t,a[105]; double p,q; struct qwe { doub 阅读全文
posted @ 2018-09-18 09:02 lokiii 阅读(229) 评论(0) 推荐(0)
摘要:设g[u]为这个点被儿子和自己充上电的概率,f[u]为被儿子、父亲和自己充上电的概率 然后根据贝叶斯公式(好像是叫这个),1.P(A+B)=P(A)+P(B) P(A)\ P(B),2.P(A)=(P(A+B) P(B))/(1 P(B)) g的转移很好想,根据上面的1公式,g[u]=g[u]+g[ 阅读全文
posted @ 2018-09-17 17:38 lokiii 阅读(117) 评论(0) 推荐(0)
摘要:首先考虑快排的递归什么时候停下,显然是当前段只剩下一个数了,也就是一个数两边出现分隔符 然后再考虑计算冒泡长度这个操作,因为有分割,所以我们可以把这些放到一起冒泡,这和递归每个区间冒泡是等价的 所以答案就是一个数被动了几次,也就是他两边的分隔符出现的最晚时间 在冒泡排序中,每次冒泡,一个数如果前面有 阅读全文
posted @ 2018-09-17 14:31 lokiii 阅读(185) 评论(0) 推荐(0)
摘要:一眼二分。然后重点是树上贪心部分 长得像dp一样,设mn为子树内已炸点的最浅点,mx为子树内没有炸并且需要炸的最深点,然后转移直接从子树继承即可 然后是判断当前u点是否需要炸,当mx[u]+mn[u] include using namespace std; const int N=300005; 阅读全文
posted @ 2018-09-15 21:07 lokiii 阅读(187) 评论(0) 推荐(0)
摘要:按根号300000=m分情况讨论 查询是,当x小于等于m,那么可以暴力记录直接出解;否则,用分块维护区间值,查询的时候以x为步长跳根号m次取最小值即可 还有一种并查集方法,来自https://www.cnblogs.com/CQzhangyu/p/7088337.html cpp include i 阅读全文
posted @ 2018-09-15 19:17 lokiii 阅读(144) 评论(0) 推荐(0)
摘要:这题加个 include都会MLE…… 神思路,每个数抵消宇哥和它不同的数,最后剩下的就是众数 cpp include int n,la,x,tot; int main() { scanf("%d",&n); for(int i=1;i 阅读全文
posted @ 2018-09-15 11:10 lokiii 阅读(108) 评论(0) 推荐(0)
摘要:神区间dp 设f[l][r][0]为在l到r中压缩的第一个字符为M,并且区间内只有这一个M,f[l][r][0]为在l到r中压缩的第一个字符为M,并且区间内有两个及以上的M 然后显然的转移是f[i][j][1]=min(f[i][k][0],f[i][k][1])+min(f[k+1][j][0], 阅读全文
posted @ 2018-09-15 11:01 lokiii 阅读(131) 评论(0) 推荐(0)
摘要:注意到周期234的lcm只有12,也就是以12为周期,可以走的状态是一样的 所以先预处理出这12个状态的转移矩阵,乘起来,然后矩阵快速幂优化转移k/12次,然后剩下的次数暴力转移即可 cpp include include include using namespace std; const int 阅读全文
posted @ 2018-09-15 10:17 lokiii 阅读(156) 评论(0) 推荐(0)
摘要:脑补一下给出的图:一个环,然后有若干连接环点的边,我们就是要求这些边不重叠 考虑一下不重叠的情况,两个有交边一定要一个在环内一个在环外,所以把相交的边连边,然后跑黑白染色看是否能不矛盾即可(可能算个2 SAT?) cpp include include include using namespace 阅读全文
posted @ 2018-09-15 08:40 lokiii 阅读(168) 评论(0) 推荐(0)
摘要:spfa预处理出最短路数组dis,然后反向建边bfs出ok[u]表示u能到n点 然后发现有0环的话时候有inf解的,先dfs找0环判断即可 然后dfs,设状态f[u][v]为到u点,还可以跑最短路+v的长度,记忆化,然后直接搜即可 cpp include include include includ 阅读全文
posted @ 2018-09-15 07:50 lokiii 阅读(152) 评论(0) 推荐(0)
摘要:设f[i]为凑i元的方案数,这个随便dp一下就行了 然后处理限制,我们考虑用容斥,也就是4个超限 3个超限+2个超限 1个超限,这里用状压枚举一下,然后i硬币超限就当做选了d[i]+1个,在s里减去,最后用来容斥的就是f[s'] 阅读全文
posted @ 2018-09-14 15:46 lokiii 阅读(135) 评论(0) 推荐(0)
摘要:思路有点眼熟啊,就是设l1记录长为x的极长全1串贡献x的答案,l2记录长为x的极长全1串贡献x^2的答案,f记录真正的答案 转移的话根据n (n 1)=1,n^2 (n 1)^2=2n 1,n^3 (n 1)^3=3n^2 3n+1直接转移即可 cpp include include using n 阅读全文
posted @ 2018-09-14 15:11 lokiii 阅读(114) 评论(0) 推荐(0)
摘要:很容易发现行数就是lcm环长,也就是要求和为n的若干数lcm的个数 有结论若p1^a1+p2^a2+...+pm^am include using namespace std; const int N=1005; int n,p[N],tot; long long f[N][N]; bool v[N 阅读全文
posted @ 2018-09-14 10:48 lokiii 阅读(157) 评论(0) 推荐(0)
摘要:和数据备份差不多 设二元组(i,a[i]),开一个大根堆把二元组塞进去,以len排序,每次取出一个二元组 因为单纯的贪心是不行的,所以设计一个“反悔”操作。 记录二元组的前驱pr后继ne,把拿出来的二元组的len加进答案,然后把当前二元组和它的前驱后继当成一个,也就是len[x]=a[pr[x]]+ 阅读全文
posted @ 2018-09-13 21:23 lokiii 阅读(167) 评论(0) 推荐(0)

上一页 1 ··· 5 6 7 8 9 10 11 12 13 下一页