摘要:
传送门 #A Paint the Numbers ##思路: 排序后从小到大枚举,每次都将当前数的倍数并且未染色的数跟该数染同一种颜色。 ##代码: int n,a[maxn],res; int vis[maxn]; int main(){ cin>>n; for(int i=1;i<=n;i++) 阅读全文
摘要:
原题链接 ##思路: 最小路径点覆盖 DAG :用最少的互不相交的路径将所有点覆盖 拆点:i ==> i出点 i'入点 将原图里的每条路径 转化到新图里 1.路径 匹配 2.路径终点 左部非匹配 让左侧非匹配点最多 ⇔左侧匹配点最多 ⇔找最大匹配 最小路径重复点覆盖:用最少的路径将所有点覆盖 1.求 阅读全文
摘要:
原题链接 ##思路: 首先容易确定的是,按照$1,2,3,……,n$的方法填充,三元组的数量是最多的。 由于序列满足单调性,所以前面的值一定不会相交。对于$a[k]=k$他贡献的答案为$(k-1)/2$ 先考虑无解的情况,当补全n个数之后三元组的数量还小于$m$时,一定无解; 如果说按照最优策略构造 阅读全文
摘要:
原题链接 思路: 设$f[i]$表示最优情况下发送$i$个数据包的期望代价。 考虑怎么发送是最优的。 直接说结论吧,每次将未发送的k个数据包全部发送为最优策略。 证明见出题人题解。 所以类似于dp的转移,每次的代价为代价和乘以概率。 枚举发送$i$个数据包的期望代价: $i$个数据包全发送成功的概率 阅读全文
摘要:
题目链接 CF1305A Kuroni and the Gifts 思路: 将两个数组都从小到大排序,因为数组里不会有重复元素,所以和也不会重复。 代码: int main(){ int _=read; while(_--){ int n;cin>>n; vector<int>a,b; int x; 阅读全文
摘要:
洛谷P3829 [SHOI2012]信用卡凸包(凸包) 原题链接 思路: 模拟一下题意给出的图就会发现:答案等于圆心的长方形周长之和... 阅读全文
摘要:
二维凸包 模板题 const int maxn=1e5+100;const double eps=1e-8;int sgn(doub... 阅读全文
摘要:
CF776D The Door Problem 原题链接 题意: 给定 n扇门 m 把钥匙,每一把钥匙会同时控制 k_i 扇门,每扇门最多被两把钥匙控制。求是否存在一个使用钥匙的方法使得全部的门都变成开的。 思路1(2-sat): 与上题类似,考虑每扇门的不同初始状态造成的不同操作。 若该门初始状态 阅读全文
摘要:
CF228E The Road to Berland is Paved With Good Intentions 题意: 给定一个图(点数<=100),每条边的权值为0或1,每次可以对一个点进行操作,操作会改变这个点所有的边的权值(0变为1,1变为0)。求一种方案数,使得所有边都为1。 思路: 2- 阅读全文
摘要:
Incredible Chess 题解 Left Right 思路: nim模板题。 代码: #include<bits/stdc++.h> using namespace std; const int maxn=510; int a[maxn],b[maxn]; int main(){ int T 阅读全文