05 2021 档案

摘要:传送门 #思路: 参考博客 图来自参考博客 赛时想了想感觉没法将重合的部分变成规则的部分就放弃了。 可以用定积分来做,由于精度比较小,所以推出式子来写就可以。 首先,联立两个椭圆的方程算出$x$(也就是图中的$x_{0}$) 其次,计算橙色部分的面积: 根据椭圆的方程我们可以知道$y$关于$x$的关 阅读全文
posted @ 2021-05-31 16:35 OvO1 阅读(208) 评论(0) 推荐(0)
摘要:传送门 #思路: 有个很重要的转化: 将某个数不变,其他数乘以某个素数 等价于 将某个数除以素数,其他数不变 可以看出两者的作用是相同的。 所以题意就转化成了:给出一个序列,每次选择一个数除以某个素数,问多少次能够将序列里的所有数变成一样的。 将所有的数转化成他们的gcd就好了。 对每个数进行质因子 阅读全文
posted @ 2021-05-30 20:57 OvO1 阅读(116) 评论(0) 推荐(0)
摘要:原题链接 #思路: 参考题解的思路: **首先,**每个整数都可以写成$ab^{3}$的形式;由于问题中求的是立方,将数唯一分解之后,大于$3$的幂次是没有贡献的,所以对质因子的幂次$%3$即可。 **其次,**不能共存的数是一一对应的,假设这两个数为$x,y$,质因子分解后,对应的幂次为$x(0, 阅读全文
posted @ 2021-05-30 20:30 OvO1 阅读(248) 评论(0) 推荐(0)
摘要:#2021年河南省赛——I.七便士(思维+并查集) 原题链接 #思路: 可以看出,如果未填充的部分是一条链的话,可以把剩下的都添进去。比如,第一次填倒数第二个,然后移动到倒数第一个,以此类推。 用并查集判的。 #代码: #define PI acos(-1) const int maxn=1e5+1 阅读全文
posted @ 2021-05-30 17:50 OvO1 阅读(263) 评论(0) 推荐(0)
摘要:传送门 #思路: 可以发现$n$很小,考虑状压$dp$ $dp[i][j]$表示只从前$i$个中选,使得集合$j$中的箱子都被打开花费的最小代价。 初始化: 初始化为正无穷并且$dp[0][0]=0$ 转移: 不选第$i$个,从$dp[i-1][j]$转移过来 选第$i$个,转移到$dp[i][j| 阅读全文
posted @ 2021-05-29 11:29 OvO1 阅读(173) 评论(0) 推荐(0)
摘要:问题 E: Disjoint Set of Common Divisors 时间限制: 1 Sec 内存限制: 128 MB 题目描述 Given are positive integers A and B. Let us choose some number of positive common 阅读全文
posted @ 2021-05-29 10:40 OvO1 阅读(218) 评论(0) 推荐(0)
摘要:传送门 #思路 首先,将对应的位置变成相同的字母的代价是固定的,可以预处理出来。 接着,根据p所在的位置分类讨论,如果p在左半边,一定是将左半边变成跟右半边一样的代价是最小的,因为这样省去了移动指针的代价。 处理两个指针l,r,表示该部分中需要处理的左端点跟右端点,根据p的位置分类讨论就可以了。 # 阅读全文
posted @ 2021-05-28 11:31 OvO1 阅读(64) 评论(0) 推荐(0)
摘要:传送门 #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair<ll, ll>PLL; typedef pair<int, int> 阅读全文
posted @ 2021-05-27 20:28 OvO1 阅读(44) 评论(0) 推荐(0)
摘要:#题意: 求生成树最长边与最短边的最小差值 #思路: #代码: const int maxn=1e4+100; struct node{ int u,v,w; }edge[maxn]; int root[maxn],n,m; bool cmp(node a,node b){ return a.w<b 阅读全文
posted @ 2021-05-23 21:32 OvO1 阅读(50) 评论(0) 推荐(0)
摘要:#题意: n个城市,告诉每个城市的坐标,还有q个联通块,现在要把这n个城市连起来,可以购买联通块(每个有一定的费用),或者新建一条边(费用为点之间的距离的平方),问最小费用是多少。 #思路: 首先可以想到朴素的做法,二进制枚举每个连通块选还是不选,判断该状态下图是否已经联通,如果未联通的话再从朴素的 阅读全文
posted @ 2021-05-23 21:25 OvO1 阅读(62) 评论(0) 推荐(0)
摘要:#思路: 1.$f[i]%n$具有周期性,找循环节即可 2.数据范围很大,要用ull #代码: ll ksm_u(ull a, ull b, ll p) { ll res = 1; a%=p; while(b) { if(b & 1)res = res * a % p; a = a * a % p; 阅读全文
posted @ 2021-05-23 19:33 OvO1 阅读(64) 评论(0) 推荐(0)
摘要:#思路 求人数的部分为经典题 重点是判断方案是否唯一: 设$vis[u][j]$表示以$u$为根并且$u$的状态为$j$时方案是否唯一 转移就是如果子节点有方案不唯一的话,父节点的方案也不唯一 #代码: #include<bits/stdc++.h> using namespace std; typ 阅读全文
posted @ 2021-05-21 17:25 OvO1 阅读(58) 评论(0) 推荐(0)
摘要:传送门 #题意 给定一个字符串,A和B轮流操作,A是先手; 每个人可以有如下的两种操作: $1:$将字符串中某个位置的$0$换成$1$,代价为$1$ $2:$将整个字符串翻转,代价为$0$ 其中操作$2$的条件为:当前的字符串不是回文字符串并且上一次并没有执行过该操作 当字符串变为全$1$字符串时, 阅读全文
posted @ 2021-05-21 11:02 OvO1 阅读(101) 评论(2) 推荐(0)
摘要:传送门 #题意: 给定一个括号序列,要求增加最少的字符使得该序列变为合法的括号序列,输出增加后任意一种方案。 #思路 可能是区间$dp$写少了,感觉模板题都不会写了 $dp[i][j]\(表示将区间\)[i,j]$变为合法的括号序列所需要的最少的增加的字符数。 先考虑初始化,如果该区间长度为1的话, 阅读全文
posted @ 2021-05-20 21:40 OvO1 阅读(103) 评论(0) 推荐(0)
摘要:原题链接 #思路 #代码 #pragma GCC optimize(2) #include<bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair<l 阅读全文
posted @ 2021-05-20 20:48 OvO1 阅读(57) 评论(0) 推荐(0)
摘要:#include<bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair<ll, ll>PLL; typedef pair<int, int>PII; 阅读全文
posted @ 2021-05-20 13:58 OvO1 阅读(59) 评论(0) 推荐(0)
摘要:#题意 $n$种箱子,每种箱子都有无数个,有三个属性:长宽高,其中箱子可以任意旋转。 一个箱子能够叠在另一个箱子上的条件是必须有两个属性小于另一个箱子。 求最大能够叠加的高度。 #思路 $n$只有$30$,考虑$n^{2}$的写法。 由于属性是都小于才可以,所以同样摆法的箱子贡献是相同的。 由于箱子 阅读全文
posted @ 2021-05-19 20:42 OvO1 阅读(56) 评论(0) 推荐(0)
摘要:A Spy in the Metro #题意: $n$个站台,从第$i$个站台到第$i+1$个站台的所需时间为$t[i]$ 站台1出发的车辆有$m1$辆,出发时间为$d1[i]$ 站台n出发的车辆有$m2$辆,出发时间为$d2[i]$ 给出时间$T$ 求在时间$T$里到达站台$n$所需要的最少等待时 阅读全文
posted @ 2021-05-19 20:15 OvO1 阅读(56) 评论(0) 推荐(0)
摘要:困扰很久的问题 点击后发现 变成了源代码! 原因我也不知道 参照这位博主的 将web.xml中的servlet配置去掉 同时:... 阅读全文
posted @ 2021-05-12 21:13 OvO1 阅读(1467) 评论(0) 推荐(0)
摘要:传送门 #前言: 求$[l,r]$区间里取余$3=0$的数的个数,取余$3=1$的数的个数,取余$3=2$的数的个数: cnt[0]=(r+3)/3-(l+2)/3; //%3==0 cnt[1]=(r+2)/3-(l+1)/3;//%3==1 cnt[2]=(r+1)/3-l/3;//%3==2 阅读全文
posted @ 2021-05-11 20:18 OvO1 阅读(61) 评论(0) 推荐(0)
摘要:传送门 #思路: 欧拉降幂板子题,第一次见这个东西 #代码: const ll mod=1e9+7; ll fib[maxn],a,b,n,m; int main(){ a=read,b=read,m=read,n=read; fib[1]=fib[2]=1; for(int i=3;i<=n;i+ 阅读全文
posted @ 2021-05-11 14:24 OvO1 阅读(58) 评论(0) 推荐(0)
摘要:传送门 #A Paint the Numbers ##思路: 排序后从小到大枚举,每次都将当前数的倍数并且未染色的数跟该数染同一种颜色。 ##代码: int n,a[maxn],res; int vis[maxn]; int main(){ cin>>n; for(int i=1;i<=n;i++) 阅读全文
posted @ 2021-05-11 14:10 OvO1 阅读(91) 评论(0) 推荐(0)
摘要:原题链接 ##思路: 最小路径点覆盖 DAG :用最少的互不相交的路径将所有点覆盖 拆点:i ==> i出点 i'入点 将原图里的每条路径 转化到新图里 1.路径 匹配 2.路径终点 左部非匹配 让左侧非匹配点最多 ⇔左侧匹配点最多 ⇔找最大匹配 最小路径重复点覆盖:用最少的路径将所有点覆盖 1.求 阅读全文
posted @ 2021-05-10 15:01 OvO1 阅读(85) 评论(0) 推荐(0)
摘要:原题链接 ##思路: 首先容易确定的是,按照$1,2,3,……,n$的方法填充,三元组的数量是最多的。 由于序列满足单调性,所以前面的值一定不会相交。对于$a[k]=k$他贡献的答案为$(k-1)/2$ 先考虑无解的情况,当补全n个数之后三元组的数量还小于$m$时,一定无解; 如果说按照最优策略构造 阅读全文
posted @ 2021-05-10 14:33 OvO1 阅读(108) 评论(0) 推荐(0)
摘要:原题链接 思路: 设$f[i]$表示最优情况下发送$i$个数据包的期望代价。 考虑怎么发送是最优的。 直接说结论吧,每次将未发送的k个数据包全部发送为最优策略。 证明见出题人题解。 所以类似于dp的转移,每次的代价为代价和乘以概率。 枚举发送$i$个数据包的期望代价: $i$个数据包全发送成功的概率 阅读全文
posted @ 2021-05-10 14:16 OvO1 阅读(111) 评论(0) 推荐(1)
摘要:题目链接 CF1305A Kuroni and the Gifts 思路: 将两个数组都从小到大排序,因为数组里不会有重复元素,所以和也不会重复。 代码: int main(){ int _=read; while(_--){ int n;cin>>n; vector<int>a,b; int x; 阅读全文
posted @ 2021-05-09 21:47 OvO1 阅读(72) 评论(0) 推荐(0)
摘要:洛谷P3829 [SHOI2012]信用卡凸包(凸包) 原题链接 思路: 模拟一下题意给出的图就会发现:答案等于圆心的长方形周长之和... 阅读全文
posted @ 2021-05-04 09:31 OvO1 阅读(51) 评论(0) 推荐(0)
摘要:二维凸包 模板题 const int maxn=1e5+100;const double eps=1e-8;int sgn(doub... 阅读全文
posted @ 2021-05-03 18:52 OvO1 阅读(40) 评论(0) 推荐(0)
摘要:CF776D The Door Problem 原题链接 题意: 给定 n扇门 m 把钥匙,每一把钥匙会同时控制 k_i 扇门,每扇门最多被两把钥匙控制。求是否存在一个使用钥匙的方法使得全部的门都变成开的。 思路1(2-sat): 与上题类似,考虑每扇门的不同初始状态造成的不同操作。 若该门初始状态 阅读全文
posted @ 2021-05-02 14:58 OvO1 阅读(94) 评论(0) 推荐(0)
摘要:CF228E The Road to Berland is Paved With Good Intentions 题意: 给定一个图(点数<=100),每条边的权值为0或1,每次可以对一个点进行操作,操作会改变这个点所有的边的权值(0变为1,1变为0)。求一种方案数,使得所有边都为1。 思路: 2- 阅读全文
posted @ 2021-05-02 14:21 OvO1 阅读(93) 评论(0) 推荐(0)
摘要: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 阅读全文
posted @ 2021-05-02 09:23 OvO1 阅读(103) 评论(0) 推荐(0)
摘要:滚动数组优化dp CF570E Pig and Palindromes 原题链接 题意: 给定一个n*m(n,m ⇐ 500)的字符矩阵,从(1,1)走到(n,m),每次只能向右和向下走,那么有多少种走法可以组成一个回文串。 思路: 由于形成的是回文串,我们可以假设有两个点,点A从(1,1)出发,点 阅读全文
posted @ 2021-05-01 21:53 OvO1 阅读(384) 评论(0) 推荐(0)