19_04_02校内训练[deadline]】的更多相关文章

题意 给出一个二分图,左边为A集合,右边为B集合,要求把A集合中每一个点染为黑白两色中的一种,B集合中的颜色已定.染色后对于原本相邻且颜色相同的点,建立新的二分图,即得到了两个新的二分图,它们是独立的.求出这两个新的二分图的最大匹配数的和的最小值.数均小于等于5000. 思考 这是简化题意.由于暴力很难写,考虑网络流.将B集合中的每一个点根据其颜色分为一类和二类点.对于A集合中的每一个点,拆成两个点,两点连1的单向边,将所有相邻的一类点连线左边,另一类连向右边,值为1.所有二类点连向汇点,源点连…
来自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…
对于每个平面图,都有唯一一个对偶图与之对应.若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…
题目还有一个条件是,x>y的y只会出现一次(每个数直接大于它的只有一个) n<=5000 是[HNOI2015]实验比较 的加强版 g(i,j,k)其实可以递推:g(i,j,k)=g(i-1,j,k-1)+g(i,j-1,k-1)+g(i-1,j-1,k-1) 代码: 判断无解的时候可能比较混乱 1.先保证不要连有向重边 2.如果不是树形图,就是有环,vis过了 #include<bits/stdc++.h> #define il inline #define reg regist…
对于每个点都要答案 还是异或 trie树合并石锤了 朴素枚举是O(n^2*17)的 怎么办呢? 我们发现合并的时候,一些部分的trie的子树还是不变的 改变的部分也就是合并的复杂度可以接受 鉴于大部分trie都不变,而且是一个从上往下的过程,支持pushup维护 所以考虑dp,再在merge的pushup时候维护好dp值的更新 f[i]表示trie中以i为根子树,最后的游戏结果 转移分类讨论: 如果x的sz==1,令dp[x]=-1 否则如果仅x的某一个子树有sz,dp[x]=dp[son] 否…
(题干中的废话已经划去) dp显而易见 收益为负数的可以直接扔掉不管.不要一定更优 子串问题,考虑SAM 建立广义SAM 尝试匹配,匹配到的位置的parent树祖先如果有完整的串,那么可以从这个串转移 考虑祖先不好考虑 不妨考虑i对j(i<j)的贡献,就是子树了 线段树维护dfn序,区间对val取max SAM学傻了 这个,由于是"完整出现”,所以AC自动机就可以(比广义SAM好写好调) 走一走属于第j个串的路径,对应的fail树的祖先包含i(i<j)的结束位置,那么可以转移 所以,…