2019年4月12日
摘要: 看了网上众多博客后,我才发现,实现min_25只有脑子,没有代码。 当然可能是我太ruo了。 min_25是一种想法,不是算法。 不要尝试套模板,因为很多题目并没有什么用。 最重要的一点,g不要看成是函数,而是埃式筛第j轮后的剩下的数的F之和;S看成dp来做,也不要记忆化。 1.求[1,n]中素数个 阅读全文
posted @ 2019-04-12 12:58 GreenDuck 阅读(402) 评论(1) 推荐(0) 编辑
2019年4月8日
摘要: 想着费马定理和二次探测定理就能随手推了。 做一次是log2n的。 1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long int ll; 4 ll T,n; 5 ll qpow(ll x,ll y,ll mod) 6 阅读全文
posted @ 2019-04-08 14:54 GreenDuck 阅读(321) 评论(0) 推荐(0) 编辑
2019年4月3日
摘要: 题意 给一个联通无向图,有n个点和m条边,要求用k种颜色为其染色,使得相邻的两个点颜色不同。n-m≤5,n、m≤100,000。k很大。 思考 若n、m≤8,用最小表示(例如,染色[1,5,3,1]<=>[1,3,2,1])。对于一种染色的最小表示,若使用了m种不同的颜色,最后的结果乘以k!/(k- 阅读全文
posted @ 2019-04-03 18:18 GreenDuck 阅读(177) 评论(0) 推荐(0) 编辑
2019年4月2日
摘要: 题意 给出一个二分图,左边为A集合,右边为B集合,要求把A集合中每一个点染为黑白两色中的一种,B集合中的颜色已定。染色后对于原本相邻且颜色相同的点,建立新的二分图,即得到了两个新的二分图,它们是独立的。求出这两个新的二分图的最大匹配数的和的最小值。数均小于等于5000。 思考 这是简化题意。由于暴力 阅读全文
posted @ 2019-04-02 17:16 GreenDuck 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 弱化题意 求,( )为gcd,n≤100,000。 思考 转化为上三角,经观察得: 例如,n=6: 原始: 接下来2~6行减去第1行: 接下来4、6行减去第2行: 接下来第六行减去第3行,得到结果。 还不会证。 阅读全文
posted @ 2019-04-02 13:07 GreenDuck 阅读(123) 评论(0) 推荐(0) 编辑
2019年3月30日
摘要: 序 我昨天做了一个梦。 梦见,我还活着。 今天,已是二零一九年九月二十四日,这就意味着,我在地球上已经存在了六千一百四十二天。同时这也意味着,我在过去的六千一百四十二天中,没有从我的思想中挖出任何有意义有价值的东西。因为它们从来没跃动于纸上。它们从来没穿梭于人来人往之中。这是我的罪恶。 信仰是什么? 阅读全文
posted @ 2019-03-30 19:46 GreenDuck 阅读(210) 评论(0) 推荐(0) 编辑
2019年3月28日
摘要: 以下问题均允许离线,根节点都为1。 prob1 : 一棵有根树,要求线性时间求出任意子树的权值和。 prob2 : 一颗有根树,要求O(nlogn)求出与u距离不超过x且在u子树中的节点的权值和。 prob3 : 一颗有根树,要求O(nlogn)求出与u距离不超过x且在u子树中的不同颜色种类个数,颜 阅读全文
posted @ 2019-03-28 19:41 GreenDuck 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 题意 给出一个长度为n的序列,有m次询问,每次询问[l1,r1],[l2,r2]的区间,问排序后相同位置的不同数字个数是否小于等于1。如[1,3,2,2],[1,3,2,3]排序后为[1,2,2,3]和[1,2,3,3],不同的有2个,不符合。n,m≤1,000,000,数的大小≤50,000。 思 阅读全文
posted @ 2019-03-28 18:32 GreenDuck 阅读(186) 评论(0) 推荐(0) 编辑
2019年3月27日
摘要: 简化题意 m次询问,每次询问x的子树中,与x节点距离不超过y的节点的子树和。n,m≤300,000。 思路 按照dfs序排序,每次将一个点的答案塞到第depu的位置,这样得到一个前缀和,每次询问作减法即可。 可持久化线段树。 代码 1 #include<bits/stdc++.h> 2 using 阅读全文
posted @ 2019-03-27 20:50 GreenDuck 阅读(132) 评论(0) 推荐(0) 编辑
2019年3月26日
摘要: 原题题意 给出长度为n的有序数组,m次询问,每次给出一个正整数x。你要删除数组中最少的元素,使得数组中的前缀和+x都为非负整数。允许离线,n≤750,m≤200,000。 原题思路 首先注意到,x能成功通过测试当且仅当前缀和中最小的数≥x。 将询问从大到小排个序,对于一个新的询问,每次尝试从数组中删 阅读全文
posted @ 2019-03-26 21:09 GreenDuck 阅读(191) 评论(1) 推荐(0) 编辑