
CF
文章平均质量分 77
minato_yukina
主播不是退役了,主播只是没有名额
展开
-
D. Weight the Tree 树形dp好题 Codeforces Round #774 (Div. 2)
https://codeforces.com/contest/1646/problem/DCodeforces Round #774 (Div. 2) D定义一个点为good为它的权和等于其他相邻的点的和.计算出一个树最多有多少个好点,并且统计出该条件最少的权和.思路:观察后发现只有两个点,一条边的情况下才有可能有两个good的点相邻,否则他们总是不相邻的.问题转化为求这个树的最大独立集.用dp(u,b)dp(u,b)dp(u,b)表示u是否在集合中,b=0,代表不是,b=1代表是.如果u在集合中,原创 2022-03-23 14:17:30 · 496 阅读 · 0 评论 -
Codeforces Round #724 C. Diluc and Kaeya
C. Diluc and Kaeya题意:给你一个长为n,全部由’D’,'K’组成的字符串.对于一个前缀sisisi,你要把它划分成最多的cntcntcnt份,要求每份中D的数目/K的数目一样.思路:令x=D的数目,y=K的数目x=D的数目,y=K的数目x=D的数目,y=K的数目,如何划分成前面的都是一样比例的段呢.考虑到每一段的比例都一样,那么最终前缀的比例也一样.所以事实上只能划分成当前x/yx/yx/y数目的段.所以只需要记录一下之前出现过多少个个x/yx/yx/y即可.记得用gcd约分一下.原创 2022-03-15 20:13:15 · 575 阅读 · 0 评论 -
Codeforces Round #336 (Div. 1) B. Zuma
题意:给你一个长度为n的数组,可以花费1个代价消去一个连续区间的回文串,消去后剩下的数组连起来.问你最少的代价消去整个数组.思路:对于消去区间[i,j]的值,只需要讨论i与哪个位置消掉就能覆盖所有情况.1.消去自己dp(i,j)=1+dp(i+1,j).2.选择一个位置k,满足a[i]==a[k],那么即可免费消去i,k两个位置.dp(i,j)=dp(i+1,k−1)+dp(k+1,j)但是上述情况会有特殊.当k=i+1时,第一项变为(i+1,i).显然这是在消去[i,i+1],组成了一个新的回文串,需要原创 2022-03-15 18:51:26 · 329 阅读 · 0 评论 -
C. The Sports Festival
Codeforces Round #715 (Div. 2)C. The Sports Festival题目:给你一个数组aiaiai,定义di=max(a1,a2..,ai)−min(a1,a2...,ai).di=max(a1,a2..,ai)-min(a1,a2...,ai).di=max(a1,a2..,ai)−min(a1,a2...,ai).,让你最小化∑1ndi\sum_1^ndi∑1ndi.你可以对数组上的元素任意地安排它的位置.思路:先不考虑如何去安排,想像一下如何求出这个did原创 2022-03-14 15:47:01 · 1212 阅读 · 0 评论 -
cf1637_D. Yet Another Minimization Problem
链接:https://codeforces.com/contest/1637/problem/D题意:给你两个数组a,ba,ba,b,可以无限次进行以下操作:交换ai,biai,biai,bi的值.要求你进行上述操作后,求得下列表达式的最小值.∑i=1n∑j=i+1n(ai+aj)2+∑i=1n∑j=i+1n(bi+bj)2\sum_{i=1}^n\sum_{j=i+1}^n{(a_i+a_j)^2}+\sum_{i=1}^n\sum_{j=i+1}^n{(b_i+b_j)^2}i=1∑nj=i+1∑原创 2022-03-04 17:41:30 · 303 阅读 · 0 评论 -
Codeforces Round #765 (Div. 2) (A-D)
咕咕咕这个学期一定好好学习A. Ancient Civilization二进制贪心一下就行/**/#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 3e5+2;const int INF = 1e9+7;int main(){ int T;cin>>T; while(T--){ int n,l; cin>>n>>l;原创 2022-02-21 20:46:01 · 356 阅读 · 0 评论 -
Codeforces Educational Codeforces Round 118 (A-E)部分
A. Long Comparison题意:给出两个数字,都表示为 x+后缀有p个0x+后缀有p个0x+后缀有p个0.比较两个数字的大小思路:一开始是傻傻地去模拟,暴力地把p个0加在x后面,然而ppp的有1e61e61e6,会超时.我的做法是这样的,首先把x1x1x1变为string,令其长度为m1m1m1,首先直接比较m1+p1与m2+p2m1+p1与m2+p2m1+p1与m2+p2,谁长谁大.如果相等,把x1与x2补成位数相等的string,然后直接比较x1与x2补成位数相等的string,然后直接原创 2021-12-07 23:13:03 · 489 阅读 · 0 评论 -
Codeforeces Educational Codeforces Round 109(A-D)部分
A. Potion-making大概就是要问你要多少步,可以构造出来一个百分数.比如构造出25%,那么就是1/(3+1),答案是4.构造3%,就是3/(97+3) 答案是100.很显然,答案是一个这样的形式 n/m.而且这个形式n和m不能互相约分,那么m就是这个答案,使用一下gcd进行约分即可.#include<bits/stdc++.h>using namespace std;int gcd(int a,int b){ if(b==0) return a; return gc原创 2021-08-10 22:04:12 · 169 阅读 · 0 评论 -
Codeforeces #711 DIV2 (A-C) 题解(部分 A-C)
Div2就是刺激啊,人菜瘾大中GCD Sum.题意:给一个数n,定义一个数的gcdsum是 n与其各个位置上数字之和的GCD。比如说gcdsum(762)=gcd(762,7+6+2)=3.现在给你一个数n,找一个大于等于它的数x,令gcdsum(x)>1 。分析: 模拟即可。记住在分离各个数和的时候要用一个变量保存当前的x.不然就会出现gcd(0,sum)的情况代码:在这里插入代码片...原创 2021-03-30 23:07:22 · 238 阅读 · 0 评论 -
Codeforeces #710 div3题解报告
A. Strange Table题意:给你一个矩阵(n*m)的。这个矩阵从上到下由1,2,3````n * m填满.再给你一个数x。问你在另一个矩阵(也是n * m,不过是从水平填起),这个x的位置是什么数.思路: 算出x的坐标。然后再按矩阵的性质代入求值就行.代码:#include<bits/stdc++.h>using namespace std;int main(){ int T; cin>>T; while(T--){ long long n,m,x;原创 2021-03-28 19:00:13 · 1572 阅读 · 3 评论