自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2.15补cf

SP5971 LCMSUM - LCM Sum题意:T次询问,每次询问输入一个n,求出思路:对式子进行化简最后的表示与n/d互质数之和,由此推至欧拉函数φ,φ(n)表示前n-1个元素中与n互质的数的个数,并且可知假设x与n互质,那么n-x也与n互质,即互质的数是成对出现的,并且之和是n那么上式可以转化为φ(n/d)*(n/d)/2。因此现在需要解决的问题转化为,求我们枚举一个数的倍数,然后预处理出每一个n对应的ans,对于每次的询问实现O(1)的回答。#include&

2022-02-15 21:21:12 399 1

原创 2.13莫比乌斯反演+cfD

P2522 [HAOI2011]Problem b题意:有n个询问,每次询问输入五个数a,b,c,d,k;每次求

2022-02-13 22:05:37 174

原创 补题2.9

糖果思路:通过观察发现,糖果的种类数量少,并且对n包糖果如果进行直接组合处理的话那么就是2^100会超时,则可以考虑用状压来表示每一种的糖果,那么定义dp状态表示为:dp[i]表示,糖果种类组合为i所需的最少糖果包数,那么转移方程为在考虑i时,加入某一包糖果j,那么就直接取min即可,#include<bits/stdc++.h>using namespace std;#define ll long long const int inf=0x3f3f3f3f;const

2022-02-09 21:04:49 357

原创 Educational Codeforces Round 122 (Rated for Div. 2)

​​​​​​A. Div. 7思路:改变数的某一位,使改变之后的数能被7整除,思考可得,通过改变最后一位即可得到。#include<bits/stdc++.h>using namespace std;#define ll long long const int N=2e5+5;void solve(){ int n; cin>>n; if(n%7==0){ cout<<n<<"\n"; ...

2022-02-08 21:11:03 556

原创 Codeforces Round #767 (Div. 2)

A. Download More RAM思路:按需要内存排序,然后循环处理即可。#include<bits/stdc++.h>using namespace std;#define ll long long #define pb push_back#define fi first #define se secondconst int N=2e5+5;const int mod=1e9+7;pair<int,int> a[N];void solve(){

2022-01-23 20:35:59 453 1

原创 Educational Codeforces Round 121 (Rated for Div. 2)

A直接sort即可。B经过分析可得,相邻的和一定会使整个数变小,那么贪心的去找,是否存在两个数之和>=10,来保证其位数不会减小,并且在最后的两个数之和>=10的位置去修改,如果整个数不存在相邻的两数之和>=10,那么操作之后必将导致数位-1,那么此时优先于加前两个,会使数的最高位尽量变大。#include<bits/stdc++.h>using namespace std;#define ll long long #define pb push_b

2022-01-17 21:36:58 263

原创 1.16 Codeforces Round #766 (Div. 2)

A. Not Shading题意:给定一个矩阵,矩阵内的元素为黑快或者白块,可以进行的操作是,选定一些黑块,然后使其的行或者列全部变成黑色的,问使r行c列的元素为黑块的操作数最少为多少?若不可能则输出-1思路:1.当矩阵内的元素全为白色的时候则-12.若r行c列的元素本身即为黑色的,那么就是03.若第r行或者第c列中存在黑色的元素,那么操作数即为14.不满足上述条件即为2#include <bits/stdc++.h>using namespace std

2022-01-16 21:12:43 402

原创 Codeforces Round #765 (Div. 2) C

C. Road Optimization思路:dp题目,假贪心定义dp状态为dp[i][j]表示不考虑当前站点i,那么前面的所有站点中去掉j个站点,得到的最小值。那么转移为枚举i前面的所有站点j,然后假设j到i之间所有的站点都去掉,即去掉i-j-1个站点,那么多余的就从前j个站点中去掉p-(i-j-1)个转移,方程为:其中j<i,k<p且k要大于i-j-1,dp[j][k-(i-j-1)]表示从前j个站点中去掉所多余的站点所得到的的最优解。因为在输入中并没有说明最后终

2022-01-14 21:51:57 851

原创 Codeforces Round #764 (Div. 3)

A Plus One on the Subset题意:给定一个数组,我们可以进行的操作为,选出任意的下标,然后将这些数组下标对应的元素进行+1,求最后使得数组元素都相等的最小操作数是多少。思路:我们只需要更新一个最大值,一个最小值,然后答案即为MAX-MIN,输出即可。#include<bits/stdc++.h>using namespace std;#define ll long long #define pb push_backconst int N=2e..

2022-01-11 22:07:12 624

原创 容斥+积性函数

Mike and Foam题意:架子上有n瓶酒,初始架子为空,每次操作询问一个编号的酒,如果不在架子上,那么就放到架子上,如果在架子上,那么就拿下来,每次询问回答一个分数。分数的计算为:满足i<j并且gcd(ai,aj)=1的数对(i,j)的个数。思路:分析题意,满足gcd=1则表示两个数互质,即两个数没有公共的质因子,那么看到每个ai的范围为小于5e5,那么考虑质因数分解,每个数最多分解到6个质因子,比较少,并且发现对于每个质因子的次数是不需要的,那么对于每次的询问,我们可以更新

2022-01-11 10:55:57 321

原创 补1.9 容斥问题

大水题求出1-n中有多少个数,不是2 5 11 13 的倍数思路:简单的容斥问题,定义性质a1:是2的倍数,a2:是5的倍数,a3:是11的倍数,a4:是13的倍数。那么简单的将问题转化为求,而在第二次的求和式中,含义等价于具有i个性质的个数,那么就等于n/ai;因此,做法就为二进制枚举每个性质,然后进行容斥即可。且因为本题的2 5 11 13 均为素数,因此满足多个性质时,可以直接相除计算个数。#include<bits/stdc++.h>using nam

2022-01-10 11:25:59 235

原创 字符串hash+容斥

字符串hash可以将一个字符串转换为一个整数。我们要保证不会出现两个不同的字符串同时hash到一个整数的情况,即保证其为一个单射的情况。首先有一个hash数组,保存值,类型为unsigned long long 自然溢出相当于自动对2^64-1取模。hash公式:其中p和mod均为质数,且p<mod;单hash的情况下,在p和mod尽量取大点,那么出现冲突的概率是很低的。p常取13,131,等当我们求出来一个串的hash值的时候,接下来就是如何求取一个串的子串的ha

2022-01-08 22:37:52 300

原创 补题+知识点hash康托展开

D. Period题意要求求出在修改所给的位置p上的字符之后,字符串又多少个周期。首先又判断,整个字符串不能超过两个周期,因为修改之后的字符是原字符串中所没有的,那么对于修改位置p上的字符而言,每个周期所对应的最后一个字符为p前的一个字符,那么就是看前p-1个字符或者后n-p个字符中能相互对应的有几个。对于样例ccpc而言,由于c是对应的那么ans[1]++,说明进行周期处理后能对应的字符串长度为1的有1个,比如对于字符串abababa来说ans[1]++,ans[3]++。那么当修改的位置为4

2022-01-07 21:08:17 466

原创 1.5补题

Paimon Sorting题目定义了一种排序方式,然后回答从1-i使用这种排序方式会交换多少次。首先,我们通过手推发现,在i=1的循环之后,是将严格大于a[1]的值一次向后挪动了以为,然后对于以后的每轮循环,a[i]的贡献是前i个值中比a[i]大的数的个数(去重之后)。那么首先假设,数组中的数都不相同,那么循环当碰到a[i]>a[1]的时候说明此时需要将a[1]与a[i]进行交换,则ans++,然后统计对于第i位而言前面比他大的数的数量,此操作可用树状数组实现,即上述操作为ans

2022-01-05 21:52:38 368

原创 2022 1.4 补题

​​​​​​C. Klee in Solitary Confinement思路:首先,对于每个数我们要将其存储在数组中,注意向右位移2e6,而不是1e6,因为k的取值也可能是负数。其次,对于每一个位置上的值是否操作,我们要进行讨论,优先将其变到x+k的位置上去,然后这个数的数目要-1,即:dp[x+k]++,dp[x]--,并且dp[x]=max(0,dp[x])保证其非负。最后在每次要对答案取max,特判当k=0时,即不操作,此时最多的次数即为答案。C#include <bi

2022-01-04 20:35:23 414

原创 排列组合基础题目

Lucky Numbers题目转换成两层枚举,外层枚举数字位数,内层枚举选几个C[i][j]#include<bits/stdc++.h>using namespace std;#define ll long long #define pb push_back#define fi first#define se secondconst int N=60;const int mod=1e9+7;ll c[N][N];int main(){ int n; cin&gt

2022-01-02 22:03:47 592

原创 中原工学院第十一届ACM校赛总结

Problem A. 玄武国Input file : standard inputOutput file: standard outputTime limit: 1 secondMemory limit: 256 megabytes小 E 只身来到玄武国,准备在一排只有 n 个客栈的地方住宿,这个街道有m 名刺客组织的刺客,每个刺客的监测半径范围是 k。也就是说,对于处于在 f号客栈的刺客,他可以监测到[f-k,f+k]所有的客栈。小 E 不想过多的与刺客组织接触,他已经知道了每个刺客所在的

2021-08-18 17:54:29 467

空空如也

空空如也

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

TA关注的人

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