校内训练0609 problem c】的更多相关文章

[题目大意] 给一棵树,求有多少条路径满足总和-最大值 是P的倍数 n<=10^5, P<=10^7 [题解] 一看就是点分治嘛 不考虑子树合并,考虑poj1741的做法,每次考虑经过重心的路径,用优先队列,从小到达添加并求答案即可. 容斥下. # include <queue> # include <stdio.h> # include <string.h> # include <iostream> # include <algorith…
题目传送门 http://192.168.21.187/problem/1236 http://47.100.137.146/problem/1236 题解 题目中要求的显然是那个状态下的直径嘛. 所以这道题有一个非常简单的做法--线段树分治. 直接把每一条边按照 \(l, r\) 的区间放到线段树上进行分治,遍历的时候用并查集维护直径就可以了. 时间复杂度为 \(O(n\log^2n)\). 很早以前就写了这个算法,代码附在了最后,不多讲了. 但是这道题还有一个方法--动态 DP. 线段树分治…
来自FallDream的博客,未经允许,请勿转载,谢谢. hzwer又出丧题虐人 4道noi....        很奇怪 每次黄学长出题总有一题我做过了. 嗯题目你们自己看看呗 好难解释 -------------------------------------- A.[bzoj1565][NOI2009]植物大战僵尸 这道题其实挺好想的.nm比较小,考虑最小割,假设割到S表示吃,割到T表示不吃 那么能源小于0的,从S向他连边,流量是负的能源, 能源大于0的,从它向T连边,流量是能源,同时答案…
来自FallDream的博客,未经允许,请勿转载,谢谢. 报警啦.......hzwer又出丧题虐人啦..... 4道ctsc...有一道前几天做过了,一道傻逼哈希还wa了十几次,勉强过了3题..我好菜啊都不会 A.[ctsc2014][bzoj3555]企鹅QQ 给定n个长度为l的字符串,两量不同,求有多少对字符串只有一个字符不同.  n<=300000  l<=200 这个很明显就是哈希啦......我写了几发都随便wa,然后怒而滚键盘才过了.map会T,用了个手写map #include…
来自FallDream的博客,未经允许,请勿转载,谢谢. ----------------------------------------------------------------------------- hzwer这次不都出省选题了,干脆直接扔出了APIO三道+一道NOI,然后按照惯例最后留了一个模板题.有两道apio是2014的,以前做过了,剩下的题调来调去,还剩20分钟终于做完了. --------------------------------------------------…
题意 给出n,等概率地生成一个1~n的数列.现在有n个人从左到右站成一排,每个人拿有当前数列位置上的数字,并且一开始都不知道数字是多少(但知道n是多少).从左到右让每个人进行如下选择: 1.选择保留自己的卡片,让所有人知道这个卡片上面的数字,并且走到等待区中.第一个人只能进行该选择. 2.选定等待区中的一个人,将自己的卡片与其交换,然后自己带着交换后的卡片退出游戏.等待区中的那个人会让所有人知道这个卡片上面的数字. 假如每个人都绝顶聪明,都想最大化自己的数字,求出等待区中人数的期望.n≤1E15…
题意 给出一个二分图,左边为A集合,右边为B集合,要求把A集合中每一个点染为黑白两色中的一种,B集合中的颜色已定.染色后对于原本相邻且颜色相同的点,建立新的二分图,即得到了两个新的二分图,它们是独立的.求出这两个新的二分图的最大匹配数的和的最小值.数均小于等于5000. 思考 这是简化题意.由于暴力很难写,考虑网络流.将B集合中的每一个点根据其颜色分为一类和二类点.对于A集合中的每一个点,拆成两个点,两点连1的单向边,将所有相邻的一类点连线左边,另一类连向右边,值为1.所有二类点连向汇点,源点连…
对于每个平面图,都有唯一一个对偶图与之对应.若G‘是平面图G的对偶图,则满足: G'中每一条边的两个节点对应着G中有公共边的面,包括最外部无限大的面. 直观地讲,红色标出来的图就是蓝色标出的图的对偶图. 求出一个平面图的对偶图(而且不是特殊的结构),可以贪心地找出所有最小的面.但如何描述最小?我们要固定一条边,按它顺时针或逆时针的方向找到第一条边,直到出现第一个访问过的边,就找到了一个面. 具体地将:从每个边出发,按有方向的角排序,找到角度最大或最小的边,再进行下去.反正自己写写代码就知道了.…
原题见CF632F https://blog.csdn.net/Steaunk/article/details/80217764 这个比较神仙了 点边转化, 把max硬生生转化成了路径最大值,再考虑所有路径最大值的最小值 再通过<=,>=变成= 简单证明一下充要性:如果都满足f(i,j)=a(i,j),那么对于路径aij->aik->akj->aij也都满足,所以一定成立 如果存在一个f(i,j)<a(i,j),那么一定会有某一步a(k1,k3)>max(a(k1…
比赛链接https://vjudge.net/contest/256988#status/17111202012/C/0/ 大意:三个操作,使得输入的数中,从1-n,每一个数出现的次数相同. wa代码(只是考虑了三个数的情况): #include<iostream> #include<string> #include<map> #include<vector> #include<cstring> #include<algorithm>…