03 2018 档案

摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 二分最后选的边中的最大值是多少。 mid 则 所有边权小于等于mid的边 都可以用了。 那么我们要怎么选择呢? 优先选择一级的道路。 因为它比较贵一点。 那么找到所有一级道路小于等于mid的路径。 (既然可以连,为什么不连?就算 阅读全文
posted @ 2018-03-31 18:21 AWCXV 阅读(149) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 这道题要求的是一个最长反链长度 (点集中任意两点之间都不能到达,且点的个数最多) 最长反链长度=最小链覆盖(也即最小路径覆盖) 最小路径覆盖可以用以下方法求得。 首先,把每个点都x分成两个点x1,x2 (x1放在左边,x2都放在 阅读全文
posted @ 2018-03-31 10:06 AWCXV 阅读(101) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 tarjan强连通缩点一下。 然后把缩点之后,每个点的钱的数累加起来。 然后从S出发 开始一边做bfs一遍做dp. 最后输出有酒吧的点的dp值中的最大值。 【代码】 cpp / n个点,m条有向边. 把有向图G的环进行缩点; 缩 阅读全文
posted @ 2018-03-29 15:02 AWCXV 阅读(131) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 每天的最小波动值指的是和之前所有天的差值的绝对值中的最小值。 用set.的lower_bound函数。 每次找和他差值最小的数字就好。 (不要用lower_bound(myset.begin(),myset.end(),x) 这 阅读全文
posted @ 2018-03-28 09:43 AWCXV 阅读(85) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 因为所有人工资同时递减。 所以可以设置一个变化值delta. 然后每个人的初始值为k 则把k delta加入伸展树中。 会发现delta变化之后。 伸展树中每个人的工资就仍然是原先的值+delta 比如 I 2000 delta 阅读全文
posted @ 2018-03-28 09:16 AWCXV 阅读(136) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 floyd算法 算出任意两点之间的最短路,以及最短路的条数。 然后三重循环枚举v,s,t就好 看看s到t的最短路径不经过v 经过的话增加答案贡献 O(n3) 【代码】 cpp include include define 阅读全文
posted @ 2018-03-27 09:46 AWCXV 阅读(116) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 链表,启发式合并。 把x变成y,和y全都变成x. 不论是前者还是后者。连续段的个数都是相同的,不影响结果。 那么我们把x,y中出现次数少的变成出现次数多的就好了。 每次只要O(小的数字的个数)就能完成合并。 (扫描一遍所有的'x 阅读全文
posted @ 2018-03-27 08:44 AWCXV 阅读(117) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 维护一百个二维树状数组。 二维区间求和。 【代码】 阅读全文
posted @ 2018-03-25 17:04 AWCXV 阅读(145) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 x2 x21=kn (x+1)(x1)n=ab 对于所有的a,b(a 【代码】 阅读全文
posted @ 2018-03-23 23:20 AWCXV 阅读(165) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 注意是1..n的排列。 设b的位置为i. 设i右边的数字,比b大的为1,比b小的为 1. (i左边的位置数字也一样设置成1和 1 则处理出pre[i..j]表示i..j这一段(1和 1)的和。 然后存在map中 做散列表。 然后 阅读全文
posted @ 2018-03-22 22:02 AWCXV 阅读(182) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 显然的滑动窗口题。 (尺取法 如果l..i这一段已经有k种珍珠了。 那么就尝试把l++; (即把l这个影响尝试去掉一下 如果不足k种珍珠了,那么就把l++撤销。 否则l++照常 (离散化一下数据 【代码】 cpp include 阅读全文
posted @ 2018-03-21 20:53 AWCXV 阅读(159) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 k%i=k (k/i) i 则∑k%i = n k ∑(k/i) i 因为k/i是整除运算。 所以会有某一段连续的i,它们的k/i的值都是相同的 那么 这一段连续的i用等差数列求和公式O(1)搞一下就好。 (然后i可以直接跳到上 阅读全文
posted @ 2018-03-20 10:10 AWCXV 阅读(138) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 一开始以为可以炸多次。 然后发现是一次。 那么久直接做个前缀和就好了 枚举正方形的左上角。 然后刚好和网格对齐的话。 肯定没有放在(x+0.1,y+0.1)这个地方好。 这样可以把边缘的炸掉。 然后为了方便处理。 x和y都递增1 阅读全文
posted @ 2018-03-20 08:52 AWCXV 阅读(176) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 因为查询的字典里面。单词的最大长度为10 所以。 如果建立一棵字典树的话。 深度最多为10; 那么可以写一个DP; 设f[i]表示1..i这一段是否能被理解 f[0] = 1; 然后从从第i+1个位置开始扫描。 沿着树根往下走就 阅读全文
posted @ 2018-03-19 20:56 AWCXV 阅读(123) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 时间是按顺序的。 所以就有单调性啦。 写个DP就好。 设f[i]表示打第i只鼹鼠,最多能打几只鼹鼠。 则如果i和j的距离不超过它们的时间差,那么就可以从j转移到i 即f[i] = max(f[i],f[j]+1) 注意不要写成f 阅读全文
posted @ 2018-03-18 20:05 AWCXV 阅读(155) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 设k为最大的正整数满足 20+21+...+2k20+21+...+2k 那么只用20,21,...2km(20+21+...+2k)这k+2个数就能表示出0..m这m+1个数字了。 (原 阅读全文
posted @ 2018-03-18 19:30 AWCXV 阅读(98) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 二分图的最大匹配。 因为要答下一题,这一题必须先答完。 所以如果某道题没有匹配了。 那么就直接break掉。 【代码】 cpp include define LL long long define rep1(i,a,b) for 阅读全文
posted @ 2018-03-17 21:23 AWCXV 阅读(174) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 dfs序 进入的位置设为1出去的设为 1则某个点进去的位置的dfs序的前缀和就是这个点到根节点的路径数。 (可以巧妙的把那些分叉路径去掉。 修改成公路后。就把下面的那个点(深度高的)的进入和出去的值都设置为0 用线段树维护区间和 阅读全文
posted @ 2018-03-15 23:32 AWCXV 阅读(144) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 设fi表示深度为i的树个数,si是fi的前缀和,即si为深度不超过i树的个数。 那么si=s[i 1]^n + 1 就是说 先选一个节点作为根节点 然后选n个深度不超过i 1的树接在根节点下面。 这n个子树每个子树都有s[i 1 阅读全文
posted @ 2018-03-15 15:21 AWCXV 阅读(112) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 第一个位置确定了。 那么可以通过a[i 1]来推测出第i个位置应该放什么。 所以分两种情况就好。 第一个位置为0 或第一个位置为1 最多只有这两种可能。 判断合法性就好。 【代码】 cpp include define LL l 阅读全文
posted @ 2018-03-15 14:40 AWCXV 阅读(104) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 很明显的最小生成树了。 输出最后选的那条边就好了。 【代码】 cpp include using namespace std; const int N = 300; const int M = 1e6; struct abc{ 阅读全文
posted @ 2018-03-14 09:28 AWCXV 阅读(134) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 【代码】 阅读全文
posted @ 2018-03-13 11:27 AWCXV 阅读(112) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 最后要求对于所有的i,a[i][i]=1 那么,如果第i行的第j列为1. 就说明我们可以把这个第i行换到第j行。 因为这样的话,a[j][j]就会等于1了。 转化成二分图的模型。 相当于每一行都有若干种选择,可以换到某些行。 那 阅读全文
posted @ 2018-03-13 09:03 AWCXV 阅读(111) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 暴力题。 bfs 直接用二进制存储状态。(把二维变成一维 然后暴力从每个位置进行搜索就好 一共就2^16种状态。 【代码】 阅读全文
posted @ 2018-03-13 08:42 AWCXV 阅读(105) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 用小的质数去凑那个数字。 显然比用大质数去凑划算。 因为 对于x=p1q1p2q2...pnqn x的因子个数等于(q1+1) (q2+1).... (qn+1); 显然 你用的质数越小。 这个指 阅读全文
posted @ 2018-03-10 21:53 AWCXV 阅读(137) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 Tarjan算法强连通缩点 。 最后出度为0的点。 如果只有一个。 那么这个“大点”所包含的点的个数就是答案了。 【代码】 cpp / n个点,m条有向边. 把有向图G的环进行缩点; 缩完之后的图存在vector g[N]里面; 阅读全文
posted @ 2018-03-10 20:17 AWCXV 阅读(140) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 二维的ST表。 每个大的正方形可以由4个小的正方形组成。 然后区域内的最大值最小值。也可以由4个小的张方形部分全部覆盖到。 【代码】 cpp include define LL long long define rep1(i,a 阅读全文
posted @ 2018-03-07 11:38 AWCXV 阅读(96) 评论(0) 推荐(0) 编辑
摘要:【链接】 "我是链接,点我呀:)" 【题意】 在这里输入题意 【题解】 思路来自hzwer.. 设xi表示第i个人往左传递了xi个糖果。 (如果小于0表示旁边的人给他了糖果。 则ans=∑|xi| 最后所有人的糖果数都变成sum/n avg 则 a1 x1+x2 = avg a2 x2+x3= av 阅读全文
posted @ 2018-03-07 10:39 AWCXV 阅读(132) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示