该文被密码保护。 阅读全文
posted @ 2019-08-29 10:13 19992147 阅读(3) 评论(0) 推荐(0) 编辑
摘要:#include<bits/stdc++.h> using namespace std; int main() { int T; scanf("%d", &T); while(T--) { system("data > input.txt"); system("a+b < input.txt > 1 阅读全文
posted @ 2017-04-22 11:53 19992147 阅读(780) 评论(0) 推荐(0) 编辑
该文被密码保护。 阅读全文
posted @ 2017-04-14 20:15 19992147 阅读(12) 评论(0) 推荐(0) 编辑
摘要:贪心想了两个小时 想到怀疑人生 其实是一个简单的$dp$ $dp[i][0]$表示不选父边 $dp[i][1]$表示选 那么儿子排个序贪心一下就行了 感觉头铁总是会凉 一个想法不行要尝试换一下 #include <bits/stdc++.h> using namespace std; using l 阅读全文
posted @ 2020-02-04 10:36 19992147 阅读(32) 评论(0) 推荐(0) 编辑
摘要:A 枚举一下 #include <bits/stdc++.h> using namespace std; int main() { int x, y; cin >> x >> y; int ans = 0; if(x == 1) { ans += 300000; } if(x == 2) { ans 阅读全文
posted @ 2020-02-04 10:24 19992147 阅读(58) 评论(0) 推荐(0) 编辑
摘要:交互 问题就是如何确定点的顺序 只有一个点肯定不行 需要除$1$号点找一个基准点 也就是和$1$号点相邻的点 这个可以通过$n$次叉积问出来 然后就是确定顺序 通过叉积确定比较困难 因为一次只能问出来两个点的相对顺序 这样需要$n^2$次 考虑面积询问 可以通过面积询问确定 其他点到两点连线距离 凸 阅读全文
posted @ 2020-01-27 23:57 19992147 阅读(36) 评论(0) 推荐(0) 编辑
摘要:扫描线 先跑一个扫描线 统计不删除的答案 然后考虑对于每个线段计算删除的答案 思考一下什么情况下删除线段答案增加 当扫描线扫到了一个右端点 并且set里只有一条线段 这时set里的线段贡献+1 这里比较好思考 还要注意如果当前线段只有一条 那么答案-1 一条线段右端点也可能造成贡献 但是不用特别计算 阅读全文
posted @ 2020-01-27 23:45 19992147 阅读(20) 评论(0) 推荐(0) 编辑
摘要:贪心 从上级比赛向下级比赛枚举 用一个堆维护一下可以作为对手人选的价值 每次取最小即可 如果当前比赛不用花钱就能打赢就跳过 没做出来的原因在于还想维护每个对手的手下败将 其实根本不用维护 因为剩下的人总能合理分配 只要比这个人弱的人数量足够就行 因为只要弱就行 #include <bits/stdc 阅读全文
posted @ 2020-01-27 23:14 19992147 阅读(24) 评论(0) 推荐(0) 编辑
摘要:贪心 一条边的价值肯定大于其子树里边的价值 那么先将叶子节点对应的边放进一个$set$ 从后往前扫 每次选$set$里最小的配对 如果出现新的叶子加入$set$ 每条边的价值就是自己以及子树中最大的编号 有点类似超级钢琴的贪心 不过简单很多 #include <bits/stdc++.h> usin 阅读全文
posted @ 2020-01-27 23:07 19992147 阅读(30) 评论(0) 推荐(0) 编辑
摘要:计算几何 先枚举被围住的点 计算合法比较困难 考虑计算不合法方案数 枚举其他点 选一个点连线作为基准边 当其他三个点连线都在基准边的一侧时不合法 极角排序+双指针统计即可 时间复杂度$O(n^{2}logn)$ #include <bits/stdc++.h> using namespace std 阅读全文
posted @ 2020-01-27 23:00 19992147 阅读(24) 评论(0) 推荐(0) 编辑
摘要:状压dp 看起来不是很好状压 反过来考虑计算贡献 $dp[S]$表示当前已经放置了集合$S$的字母 $S$内部距离之和以及$S$内部摆放方法距离对于外部还未选的字母的贡献和 这样外面怎么放不会影响当前状态的最优 因为当添加一个字母在末尾 它和$S$的未计算的贡献只有一个间隔 之前的间隔已经计算了 其 阅读全文
posted @ 2020-01-27 22:54 19992147 阅读(36) 评论(0) 推荐(0) 编辑
摘要:A 枚举一下 #include <bits/stdc++.h> using namespace std; int n; string End; string s[55]; int t[55]; int main() { cin >> n; for(int i = 1; i <= n; ++i) { 阅读全文
posted @ 2020-01-27 22:37 19992147 阅读(55) 评论(0) 推荐(0) 编辑
摘要:我们把所有点分成四类 $A_{0,0},A_{0,1},A_{1,0},A_{1,1}$ 发现如果$A_{0,0}+A_{1,1} > 0$并且$A_{0,1}+A_{1,0} > 0$或者$A_{0,0}+A_{0,1} > 0$并且$A_{1,0} + A_{1,1} > 0$,这样可以直接得出 阅读全文
posted @ 2019-12-30 15:40 19992147 阅读(136) 评论(4) 推荐(0) 编辑