上一页 1 2 3 4 5 6 7 8 9 10 ··· 24 下一页
摘要: 2017-2018 ACM-ICPC, Asia Tsukuba Regional Contest A Secret of Chocolate Poles 思路:暴力枚举黑巧克力的个数和厚黑巧克力的个数 代码: #pragma GCC optimize(2) #pragma GCC optimize 阅读全文
posted @ 2018-11-23 15:56 Wisdom+.+ 阅读(421) 评论(0) 推荐(0) 编辑
摘要: 2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) 思路: A Exam 思路:水题 代码: #include<bits/stdc++.h> using namespace std; int main(){ int k; sc 阅读全文
posted @ 2018-11-23 15:39 Wisdom+.+ 阅读(477) 评论(0) 推荐(0) 编辑
摘要: E - The Unbearable Lightness of Weights 思路: 分组背包dp 每组最多只能选一个 一些优化可以快很多 代码: 阅读全文
posted @ 2018-11-21 23:55 Wisdom+.+ 阅读(256) 评论(0) 推荐(0) 编辑
摘要: 践踏 思路: 如果k不为0, 那么就是对k取模意义下的区间更新, 单点查询 否则, 就是普通的区间更新, 单点查询 代码: 阅读全文
posted @ 2018-11-20 17:44 Wisdom+.+ 阅读(273) 评论(0) 推荐(0) 编辑
摘要: 大法师与魔法石 思路: 对于一个ai, 它可以构成区间[ai/v, ai] 假设和它相邻的为aj, 那么ai 和 aj 构成的区间为[(ai+aj) / v, ai+aj] 那么这两个区间能合并的条件是 (ai + aj) / v <= ai 即aj <= (v - 1)ai (v >= 2) 又因 阅读全文
posted @ 2018-11-20 15:37 Wisdom+.+ 阅读(162) 评论(0) 推荐(0) 编辑
摘要: UVA - 10245 思路: 平面分治 inplace_merge()可以用来归并排序 代码: 阅读全文
posted @ 2018-11-20 13:20 Wisdom+.+ 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 2018 AICCSA Programming Contest A Tree Game B Rectangles 思路:如果存在大于0的交面积的话, 那么肯定能找到一条水平的直线 和 一条垂直的直线, 使得水平直线的左右两边点的个数相等且为n, 垂直直线的左右两边点的个数相等且为n 也就是说不能有点 阅读全文
posted @ 2018-11-20 09:59 Wisdom+.+ 阅读(597) 评论(0) 推荐(0) 编辑
摘要: Semana i 2018 A Giga-Kilo-Gigabyte 思路: dp水题 代码: #pragma GCC optimize(2) #pragma GCC optimize(3) #pragma GCC optimize(4) #include<bits/stdc++.h> using 阅读全文
posted @ 2018-11-19 20:10 Wisdom+.+ 阅读(368) 评论(0) 推荐(0) 编辑
摘要: 猜价格 分两种情况讨论: k≤n,先猜至多 k 次 1,由于回答 <1 肯定是假的,所以可以把剩余系下是哪次错试出来,然后用至多 n 次搞定。 k>n,每个数都猜两次,如果两次结果不一样,再猜第三次确定哪个是真的,之后就可以当它一直说真话了(n 次内不会再说假话) 代码: 阅读全文
posted @ 2018-11-17 23:10 Wisdom+.+ 阅读(198) 评论(0) 推荐(0) 编辑
摘要: F2 - Pictures with Kittens (hard version) 思路: 单调队列优化dp 代码: 阅读全文
posted @ 2018-11-17 00:55 Wisdom+.+ 阅读(326) 评论(0) 推荐(0) 编辑
摘要: E - Company 思路: 首先,求出每个点的dfs序 然后求一些点的公共lca, 就是求lca(u, v), 其中u是dfs序最大的点, v是dfs序最小的大点 证明: 假设o是这些点的公共lca, in[o]是o的入时间戳, out[o]是o的出时间戳, 那么对于任意一点x, in[o] < 阅读全文
posted @ 2018-11-16 15:09 Wisdom+.+ 阅读(228) 评论(0) 推荐(0) 编辑
摘要: C - Triple Flips 思路: 小范围暴力 大范围递归构造 构造方法: solve(l, r) 表示使l 到 r 区间全变为0的方法 为了使反转次数小于等于n/3 + 12 我们只需要保证每次反转后区间长度减少值的期望为3就可以了 如果a[l] == 0, l++ 如果a[r] == 0, 阅读全文
posted @ 2018-11-15 17:15 Wisdom+.+ 阅读(308) 评论(0) 推荐(0) 编辑
摘要: E - Vasya and a Tree 思路: dfs动态维护关于深度树状数组 返回时将当前节点的所有操作删除就能保证每次访问这个节点时只进行过根节点到当前节点这条路径上的操作 代码: 阅读全文
posted @ 2018-11-13 15:31 Wisdom+.+ 阅读(215) 评论(0) 推荐(0) 编辑
摘要: E - Segment Sum 思路: 数位dp 我们平时做的数位dp都是求满足条件的数的个数, 这里要求满足条件的数的和 只要在原来的基础上求每一位的贡献就可以了,所以传参数时要传两个 代码: 阅读全文
posted @ 2018-11-13 13:34 Wisdom+.+ 阅读(308) 评论(0) 推荐(0) 编辑
摘要: F - Make It One 思路: dp + 容斥 首先, 答案不会超过7, 因为前7个质数的乘积大于3e5(最坏的情况是7个数, 每个数都缺少一个不同的因子) 所以从1到7依次考虑 dp[i][j]: 表示选取i个数且gcd==j的方案数 dp[i][j] = C(cntj, i) - ∑dp 阅读全文
posted @ 2018-11-12 16:28 Wisdom+.+ 阅读(292) 评论(0) 推荐(0) 编辑
摘要: Number of Amidakuji 思路:dp dp[i][j]表示经过(i, j) 这个点的方案数 然后一层一层地转移, 对于某一层, 用二进制枚举这一层的连接情况, 判断连接是否符合题意, 然后再进行转移 代码: 阅读全文
posted @ 2018-11-12 11:27 Wisdom+.+ 阅读(366) 评论(0) 推荐(0) 编辑
摘要: UVA - 11090 思路: 二分答案 + spfa判负环 阅读全文
posted @ 2018-11-10 18:10 Wisdom+.+ 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 优点:产生速度快, 周期大 用法: #include<bits/stdc++.h> using namespace std; int main() { mt19937 mt_rand(time(0)); cout << mt_rand() << endl; cout << mt19937(time( 阅读全文
posted @ 2018-11-09 15:54 Wisdom+.+ 阅读(4455) 评论(0) 推荐(0) 编辑
摘要: 洞穴 思路: 矩阵乘法 由于只需要知道 A ^ l 的 第a行第b个元素 所以我们每次在做矩阵乘法时只需要算第a行就可以了 还要像矩阵快速幂一样预处理A ^ (1<<d) 代码: 阅读全文
posted @ 2018-10-31 18:27 Wisdom+.+ 阅读(130) 评论(0) 推荐(0) 编辑
摘要: 战争(war) 思路: 二分答案, 找到第一个不满足条件的位置 首先对于一个值来说, 所有这个值的区间肯定有交区间, 然后在这个交区间内不能出现比它小的数 所以我们check时从大的值开始考虑, 求出交区间后并标记(用并查集), 如果之后的区间被标记过,那就说明有矛盾 代码: 阅读全文
posted @ 2018-10-30 17:12 Wisdom+.+ 阅读(178) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 7 8 9 10 ··· 24 下一页