你问蒟蒻为什么一天写两篇每日题解? 难道每日坚果你不能一天吃两包吗? 题目链接 哇…这道题第一反应就是二分答案[太明显了 枚举答案 就那个“关键节点到这些点中距离的最小值的最大值”[蒟蒻读了好几遍…… 若枚举到mid 则判定答案为mid时,覆盖所有特殊点的最少点数能否不超过m 嗯 这很点分治 对于一个子树 我们要处理到它里面没有没被覆盖的点 或者有到该子树根距离小于mid的[它可以放在以后解决 那什么时候要选点呢? 自然是上面两个条件都不满足的时候 也就是离子树根最远的未被覆盖特殊点到子树根的距…
[POI2008]MAF-Mafia 很容易看出是拓扑 但不容易想出来怎么做[可能是我太菜 首先 入度为零的人是肯定死不了的 接着 我们分成环和链分析 对于一个链 最多的情况就是顺着一个个开枪 最后剩一个( (n - 1) -> (n), (n - 2) ->(n - 1) …… ) 最少的情况就是死一半(1->2, 3->4……) 对于一个环 它和链基本上一样 区别在于从任何一个人开始都不会影响结果 这个性质很有用 因为当有环接在链上时 最多的情况下环上的点会全部挂掉 void…
题目链接 这道题第一眼看去类比BANK-Cash Dispenser 不过1e6 * 1e6 = 1e12   分分钟MLE啊 想到优化 就yy到一种近似主席树的做法 来维护类似BANK的一堆序列 开心地打完 然鹅 MLE 陷入沉思 对一个值 有三种取得方式 一 存储 二 查找 三 推导 我们需要知道一个数后的另一个数在哪里 前者的最优方式已经凉了[或许有更优?请路过神犇指教 三看起来好像不大可行... 那就二吧 但线性查找肯定凉的 想到log级优化 Log + 查找 = 二分查找啊 但是原数列…
题目链接 题意: 有一棵环套树 求最少从多少个节点出发能沿边走过整棵树 环套树 并查集求联通块 有几块就砸几个 太简单不发代码了 不过某大佬的环套树找环dfs让我研究了好久… 贴一下以Orz #include<iostream> #include<cstdio> using namespace std; ; int vis[MAXN],pa[MAXN]; int n,ans; inline void dfs(int x,int type) { ) { ) { ++ans;//新环…
题目链接 : [POI2006]KRA-The Disks 好有既视感啊... 注意一下输入输出 输入是从上到下输入箱子的宽度 输出是最上面的积木停在哪一层 即 箱子高度 - 积木高度 + 1 在初始情况下 对于一层 我们只需要它上面所有层中宽度最小的那层 于是维护这样的一个数列 对于一个插入的值 如果它比前一个数小 那么直接插入 否则插入前一个数的值 比如示例数据 (第i + 1行为插入a[i]后的结果) 5 6 4 3 6 2 3 5 5 5 5 5 4 5 5 4 3 5 5 4 3 3…
题目链接 [POI2005]DWU-Double-row wwwww 之前写了半小时 一卡机 没啦QAQ 简单说一下吧 [吐血ing 这道题长得好二分图啊 所以本能地连边 一种是A边 连可交换的数对 一种是B边 连相同的数字 然后才看题干[Facepalm 发现要求使同一侧没有重复颜色的最小交换次数 然后发现 AB都连上仿佛可做 由于最多两个相同数字 数对也是一对一 每一条长度连起来大于1的路都是A-B-A-B…… 不在一个联通快里的点没有相互影响 现在考虑同色同侧 只有这种情况 边的起点和终点…
题面 先把题目意思讲一下吧: 给一个 \(n*n\) 的地图,每个格子有一个价格,找一个矩形区域,使其价格总和位于\([k,2k]\). 那么首先,可以想到,如果\(a[i][j]\)(格子的价格,下同)位于\([k,2k]\),直接输出就好. 而对于\(a[i][j]\)>\(2k\)的格子,它是不可能被选的,那么可以把它视为障碍物, 然后,剩下的格子的价格就一定小于\(k\). 那么,根据悬线法, 如果我们找到了一个极大子矩阵,且矩阵和(设为\(sum\))>=\(k\)(小于肯定是不行的…
1040: [ZJOI2008]骑士 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 5368  Solved: 2044[Submit][Status][Discuss] Description Z国的骑士团是一个很有势力的组织,帮会中汇聚了来自各地的精英.他们劫富济贫,惩恶扬善,受到社会各界的赞扬.最近发生了一件可怕的事情,邪恶的Y国发动了一场针对Z国的侵略战争.战火绵延五百里,在和平环境中安逸了数百年的Z国又怎能抵挡的住Y国的军队.于是人们把…
问题 C: [POI2008]枪战Maf 时间限制: 1 Sec  内存限制: 256 MB 题目描述 有n个人,每个人手里有一把手枪.一开始所有人都选定一个人瞄准(有可能瞄准自己).然后他们按某个顺序开枪,且任意时刻只有一个人开枪.因此,对于不同的开枪顺序,最后死的人也不同. 输入 输入n人数<1000000 每个人的aim 输出 你要求最后死亡数目的最小和最大可能 样例输入 8 2 3 2 2 6 7 8 5 样例输出 3 5 本次考试最后一个题,被老师评论称难炸了……然而貌似不那么难,但你…