自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 Codeforces A. Copy-paste (#673 Div.2) (思维)

传送门 题意: 给你一个数列a,将a[i]的值加在a[j]上(i != j)且使得a[j] <= k。试问最多能操作多少次? 思路: 找到一个最小的数一直作为加数,试其他n-1个数都不超过k即可。 代码实现: #include<bits/stdc++.h> #define endl '\n' #define null NULL #define ll long long #define int long long #define pii pair<int, int> #def

2020-09-29 00:05:13 217

原创 Codeforces C. k-Amazing Numbers (#673 Div.2) (思维 / 区间枚举 / 最小前缀)

传送门 题意: 给出一个序列a,试问对于 1~n 的所有k,是否所有k长度的连续区间里的数都有共同的数交集,并输出这个数集中的min,否则输出 -1. 思路: 考虑相同数之间最少需要多长的k才能都包含到。枚举一个数和序列开头,中间数之间的差,最后一个数和序列结尾。 用一个ans[k]记录最少需要长度的k中最小的数字是哪个。ans[k]=min(ans[k],i)。 最后再维护下ans的最小前缀即可。 代码实现: #include<bits/stdc++.h> #define endl '

2020-09-28 23:36:35 317

原创 Codeforces D. Make Them Equal (#673 Div.2) (思维 / 构造)

传送门 题意: 给出一个数列,你可对其进行3n次操作,每次将位置i的数值减去 ix (0<=x<=1e9),然后另外一个位置j加上 ix。试问是否能在3n次操作内将所有数变成一样的数。 输出每次操作相应的 i, j, x. 思路: 由于要将数值均分,那么我们可以将所有权值加到同一个数上之后再来分配。 第一遍n-1次操作,将 2~n 的 a[i] 变成i的倍数。(比赛的时候没有想到该操作,还以为这是不满足条件的,┭┮﹏┭┮) 第二遍 n-1 次将 2~n的数值全部转移到a[1]上。 第三遍n-

2020-09-28 21:45:39 241 2

原创 L. Working Plan (优先队列 & 贪心思维 & 课表安排) ICPC Seoul 2018

思路: 现有m个人和n天的课表,要求安排一个可行方案,满足第j天有d[j]个人工作,第i个人总共工作w[i]天。且每个人一开始工作就必须连续工作w天,然后至少休息h天才能工作。如果有可行解第一行输出"1",然后输出m行,每i行含w[i]/w个数,表示第i个人每次工作的开头那天;无解直接输出"-1"。 从头按顺序开始安排每一天工作的任选,首选工作量最大的且可以工作(既没有在进行上一次工作,也休息了至少h天;且后w天都需要人工作)的人。 这个时候就用一个优先队列来存m个人的当前工作量情况,且用一个队列过渡。.

2020-09-05 22:06:00 234

原创 D. Go Latin (模拟 / 简单) ICPC Seoul 2018

思路: 就是那么个意思,就像英语单词的词性转换,模拟判断一下就好。 代码实现: #include<bits/stdc++.h> #define endl '\n' #define null NULL #define ll long long #define int long long #define pii pair<int, int> #define lowbit(x) (x &(-x)) #define ls(x) x<<1 #define rs(x) (x.

2020-09-05 20:13:23 158

原创 J. Easy Integration (逆元 & 分部积分) 2020牛客暑期多校训练营(第一场)

传送门 思路: 题意就是给你n,让求出下下列式子的结果: 很明显这就是数学方面的问题啦,这么菜的我在数学方面就更菜,反正最后看题解博客得知结果就是 (n)! / (2n+1)!。 代码实现: #include<bits/stdc++.h> //#define endl '\n' #define null NULL #define ll long long #define int long long #define pii pair<int, int> #define low

2020-09-05 16:58:44 135

原创 F. Infinite String Comparision (字符串 & 字典序) 2020牛客暑期多校训练营(第一场)

传送门 思路: 一般的思路无非就是模拟判断一下,当然就需要考虑到s和t的长度已经对应字符的字典序大小问题。 但是我看见一篇大佬博客写得妙啊! 代码实现: #include<bits/stdc++.h> #define endl '\n' #define null NULL #define ll long long #define int long long #define pii pair<int, int> #define lowbit(x) (x &(-x)) #

2020-09-05 16:38:28 126

原创 Codeforces1401D Maximum Distributed Tree (树dfs & 贪心)

传送门 题意: 给出一棵n个点的树,想让给每条边赋值,使得所有边权的乘积为k。因为k非常大,所有将k拆分成m个因子,换而言之就是n-1条边权的乘积得等于m个因子的乘积。 定义f(x, y)为点x到点y的简单路径所经过的所有边的权值和,现问怎么安排边权,才能让所有简单路径的 f 值和 (即下图所示公式)最大,并得到该max值。 思路: 若m < n-1,那么剩下的边用1来填充。 dfs找到每条边的经过次数,然后贪心一下将大的因子赋值给经过次数最多的边贡献就最多。 至于经过次数的计算,可以将 u -

2020-09-02 23:22:02 162

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除