自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (1)
  • 收藏
  • 关注

原创 给自己的博客园(主要在博客园写博✍)打打广告QWQ

????我是链接

2020-01-12 15:51:49 256

原创 Codeforces Round #558 (Div. 2) C2 - Power Transmission (Hard Edition) (相交)

???? ???? ???? 没想到会在这地方复习初中数学hhh 因为直接相除会卡精度,所以转换成斜截式,判断a,b即可 map<pair<int,int>,set<int> >mp; int x[MAXN],y[MAXN]; signed main() { int n;cin>>n; rep(i,n) cin>>x[i]>>...

2020-01-31 17:44:58 127

原创 Codeforces Round #557 (Div. 2) D - Chladni Figure(几何,属性)

???? ???? ???? 题意:给你一个n个点的圈,其上有m条线段,求该图形是否为旋转对称图形。 一,转的次数肯定是n的因子。假设图形旋转x之后重叠,旋转kx的整数倍也必然重叠。现在已知旋转n个点的时候图形必然重叠,如果这个图形是一个旋转对称图形,那么他的旋转度数必然是n的因子。 二,枚举因子,检查每个点与他旋转之后的点的属性是否一致。 三,点的属性包括与他相连的边的数量及每个边的长度。为什么要挑一边要放兜了一...

2020-01-31 14:47:45 147

原创 小李的菜比时刻QAQ

数组太大了开外面,,天知道我为啥会犯这种错误 multiset带一个参数的erase函数原型有两种。一是传递一个元素值,这时候删除的是集合中所有值等于输入值的元素,并且返回删除的元素个数;另外一种是传递一个指向某个元素的iterator,这时候删除的就是这个对应的元素,无返回值。有可能出现代码中本意是想删除一个元素,但实际上是删除了所有值为x的元素。删除一个元素代码: auto pos =...

2020-01-30 22:29:35 141

原创 Codeforces Round #558 (Div. 2) B2 - Cat Party (Hard Edition) (前缀和,STL)

???? ???? ???? 因为不会用multset的erase函数调了好久。。。 int v[MAXN]; int sum[MAXN];//前缀和 signed main() { int n;cin>>n; map<int,int>mp; int tag = 0;//出现的数字样数 int ans = 1; multiset<int>m...

2020-01-30 22:25:41 121

原创 Codeforces Round #559 (Div. 2) C - The Party and Sweets (贪心)

???? ???? ???? 哎,卡在最后一行 //哎,最后没想到之贪心最后两行就可以 //bi,i行最小值 //ai,i列最大值 //min a < max b ,-1 #define int unsigned long long signed main() { int n,m;cin>>n>>m; vector<int> b(n),a(m);cin&gt...

2020-01-30 17:59:25 154

原创 Codeforces Round #559 (Div. 2) B. Expansion coefficient of the array (思维)

⚓ ⚓ ⚓ 弯弯绕绕把自己绕晕了,, PS:最近CSDN在搞事情吗,怎么老是代码贴不出来

2020-01-30 15:16:13 108

原创 Codeforces Round #560 (Div. 3) E - Two Arrays and Sum of Functions (结论题)

⏰ ⏰ ⏰ 重点在排序不等式,然而我不知道!QAQ #define mod 998244353 #define int ll signed main() { int n;cin>>n; vector<int> a(n),b(n);cin>>a>>b; rep(i,n) a[i] *= (i+1)*(n-i); so...

2020-01-30 11:10:04 94

原创 Codeforces Round #560 (Div. 3) C - Good String(构造)

???? ???? ???? //成对添加字母 signed main() { int n;cin>>n;string s;cin>>s; string ans=""; rep(i,n) { int j = i+1; while(s[i]==s[j] && j<sz(s)) ++j; if(...

2020-01-30 10:17:04 90

原创 Educational Codeforces Round 81 (Rated for Div. 2) C - Obtain The String (脑残时刻)

????‍♀️ ????‍♀️ ????‍♀️ //1,犯了小学生错误,数组太大了不能开里面,还以为VS炸了搞了好久 //2,少加一句判断,并且心态崩了最后也没检查出来,啊可惜 //3,我好菜QAQ int pos[MAXN][26]; signed main() { int T;cin >> T; while (T--) { string s,t;cin>>s>...

2020-01-30 01:11:46 146

原创 Codeforces Round #560 (Div. 3) D - Almost All Divisors (结论题)

没读懂题就开始写的后果。 题目中给出的因子是所有因子啊啊啊啊啊!如果X存在,一定是最小因子与最大因子之积,因为如果 k 是 x 的因子,则 x/k 也是x的因子。。 然后就判断一下其他的积是不是,然后判断一下是否包含全部因子即可。 #define int ll signed main() { int t;cin>>t; while(t--) { ...

2020-01-29 22:23:31 86

原创 Educational Codeforces Round 65 (Rated for Div. 2) B - Lost Numbers (枚举,全排列)

int a[10] = {4, 8, 15, 16, 23, 42}, d[5]; int main() { for (int i = 1; i <= 4; i++) { printf("? %d %d\n", i, i + 1); fflush(stdout); cin >> d[i]; } do ...

2020-01-29 18:10:30 88

原创 Educational Codeforces Round 65 (Rated for Div. 2) D - Bicolored RBS (前缀和,括号序列)

???? ???? ???? 套路题,转换成1,-1序列,最大前缀和就是最大深度,然后对半分即可,只要前缀和大于二分之一前缀和+1,就输出0,其他都是1 int sum[MAXN]; signed main() { int n;cin>>n; string s;cin>>s; int mx=0; rep(i,n) { if(i==0) ...

2020-01-29 17:55:35 181

原创 Codeforces Round #561 (Div. 2) D - Cute Sequences (推公式)

⛽ ⛽ ⛽ signed main() { int t;cin>>t; while(t–) { ll a,b,m;cin>>a>>b>>m; if(a>=b) { if(a>b) cout<<"-1"<<endl; if(a==b) cout<<“1 “<<a<<endl; co...

2020-01-29 15:31:16 155

原创 Codeforces Round #562 (Div. 2) D - Good Triple (暴力)

???? ???? ???? //对于每个右端点,检查有多少左端点可以匹配成区间 //匹配的左端点数量递增,看有没有新的三段即可 int n; char s[300005]; ll ans; signed main() { scanf("%s", s + 1); n = strlen(s + 1); for (int r = 1, l = 0; r <= n; r++) { for (int j ...

2020-01-27 21:46:49 89

原创 Codeforces Round #562 (Div. 2) C - Increasing by Modulo (二分加检验)

???? ???? ???? //0 1 2 3 4 5 //相当于对每个元素分别操作,操作最多的元素操作数量 //二分加检验 // signed main() { int n,m;cin>>n>>m; vector<int>a(n),b(n);cin>>a; int l=0,r=m,ans=0; while(l<=r) { int mid=(l+...

2020-01-27 21:02:03 146

原创 Codeforces Round #563 (Div. 2) D - Ehab and the Expected XOR Problem (位运算性质,前缀)

???? ???? ???? 1,区间----->单点,通过前缀异或和实现。设a为输出数组,b[i]为a中前i项的异或和。则有 i<=j,a[i] ^ a[i+1] ^ a[i+2] ^ … ^ a[j]=(a[j] ^ a[j-1] ^ … ^ a[1]) ^ (a[i] ^ a[i-1] ^ … ^ a[1])=b[j] ^ b[i-1]。 那我们可以把所有这样的判定都转换成异或前缀和的判定,题目...

2020-01-26 14:14:57 139

原创 Educational Codeforces Round 66 (Rated for Div. 2) D - Array Splitting (后缀数组)

???? ???? ???? 原来的计算方法就相当于k个后缀数组相加,其中一定有1~n这个后缀数组一定使用,排个序就行了 #define int ll int a[MAXN],b[MAXN]; signed main() { int n,k;cin>>n>>k; rpp(i,n) cin>>a[i]; for(int i=n;i>=1;--i) b[i] =b[i+1...

2020-01-26 10:15:00 109

原创 Codeforces Round #564 (Div. 2) D - Nauuo and Circle(树上排列)

???? ???? ???? //结论:某节点为根的子树肯定在圆圈上连续的一段 #define mod 998244353 signed main() { fast; int n; while(cin>>n) { vector<int>du(n+1,0); ll ans=n%mod; rpp(i,n-1) { int x,y;cin>>x>...

2020-01-23 19:47:34 158

原创 卡题代补)

564C,一道思维题 配合564C食用

2020-01-23 18:39:39 113

原创 Codeforces Round #568 (Div. 2) G1 - Playlist for Polycarp (easy version) (状压DP)

???? ???? ???? //总共T时间,相邻歌曲类型不相同,有多少种组合方式,n < 15 // dp[k][i],k某状态,i最后结尾为i格式 const int mod = 1e9 + 7; int t[22],g[22],dp[MAXN][4]; signed main() { int n,T;cin>>n>>T; rep(i,n) cin>>t...

2020-01-22 21:42:55 150

原创 Codeforces Round #568 (Div. 2) F - Two Pizzas (状态压缩,暴力)

???? ???? ???? 题意:每个顾客有几种想要的原料,每个披萨含有几种原料,问你买两块披萨,让最多的顾客全部吃到想要的原料,同时花最少的钱,需要买哪两块 原料只有九种,O(n^2)枚举披萨转换为(512*512)枚举状态,买两个状态一样的跑一遍,买两个状态不一样的跑一遍 是被队友嫌弃的码风 signed main() { int n, m; cin >> n >> m; ...

2020-01-21 20:34:41 159

原创 Codeforces Round #565 (Div. 3) C - Lose it! (有序序列)

???? ???? ???? 题意:原数组去掉多少数满足可以按顺序拆出几个题中给出的排列,要求拆出的数组不改变在原数组中的顺序。 因为要求有序,只有当他前一个数字的数量大于等于当前数字出现次数的时候,当前数字才有可能组成子数组。 signed main() { int n;cin>>n; vi a(7,0); rep(i,n) { int x;cin&gt...

2020-01-21 14:36:41 129

原创 Hello 2020 D - New Year and Conference (线段交集)

???? ???? ???? 题意:给出n对sa,ea,sb,eb,要求在a,b上要不然都相交,要不然都不相交 1,a相交 —> b相交,a不相交 —> b不相交 (即b相交—>a相交) 2,枚举a的端点,将对应的b线段放到集合中,如果multiset中还有元素(即当前枚举的a段与之前有重叠),检查b是否与之前的全部重叠,出现不重叠的情况只可能是当前左端点大于最小的右端点或当前右端点小于最大的左端...

2020-01-20 16:39:52 177

原创 Codeforces Round #614 (Div. 2) D - Aroma's Search (思维,暴力)

???? ???? ???? 题意:给定x0,y0,ax,ay,bx,by,一堆经验点:(x0,y0),(x1,y1) = (ax* x0+bx,ay*y0+by),起点(xs,ys),时间t,走一步都需要1单位时间,t时间内,从起点出发最多可以吃到多少个经验包 现场队友喊了句经验点很少,然而那时候心态已经崩了〒▽〒,这个题中经验点是递增的(ax ,bx 都大于0),要吃肯定是吃连续的一段,枚举吃哪一段就行,还有就...

2020-01-20 09:58:42 152

原创 Educational Codeforces Round 80 (Rated for Div. 2) E - Messenger Simulator(前缀和,树状数组)

???? ???? ???? 题意:一个1到n的全排列,m次操作,表示将ai移动到数组的第一个位置,求过程中每个数的最小位置和最大位置。 1,最小值为 1 / 初始位置 2,最大值出现在某次移动这个数之前 or 全部移动完成之后 3,因为数字不重复所以维护一个前缀和即可(记得空出来移动的位置) int n, m; int c[MAXN*2]; void update(int x,int v){ while (x &...

2020-01-18 21:32:41 247

原创 Educational Codeforces Round 68 (Rated for Div. 2) D - 1-2-K Game(博弈)

????‍???? ????‍???? ????‍???? 1,假设没有k进行分析 —> 0是个必败点,3也是一个必败点(1,2/2,1);推广就可以知道只要是3的倍数就是必败点; 2,有k 分为两种情况: (1)k%3 = 1和 k%3 = 2的情况,和走1,2步的一样,只是多了几倍的3,都是必败点还是和不存在k的情况一样的 (2)k%3 == 0的情况, 当下标比k小的时候,就回到了不存在k的情况, 下标大于等于k的时候,...

2020-01-18 19:25:25 139

原创 Educational Codeforces Round 67 (Rated for Div. 2) B - Letters Shop(思维)

???? ???? ???? 一开始用二分超时了QAQ,后来发现这个,,直接暴力存下来就行 //直接记录下每个字母第k次出现的位置,遍历p串O(n)查询, //如果用前缀和二分查询,O(nlgn)超时 struct IN { int k,pos[MAXN]; IN():k(0){pos[0]=0;} }tag[26]; signed main() { int n;cin>>n; string s...

2020-01-17 15:21:25 159

原创 2019 ICPC 南昌网络赛 - Max answer (区间和,区间最值)

???? ???????? 题意:价值 = 区间和 × 区间最小值,求数组的子区间的最大价值 (1)区间和---->前缀和 (2)O(n2) 枚举区间 —> O( n ) 枚举元素,根据当前元素查询相应区间和 对每个元素,维护他作为最小值的左右端点,枚举数组中的元素,该元素大于0为例,查找( i , r [ i ] )的前缀和最大值,( l [ i ] - 1 , i - 1 )的前缀和最小值,注意这里...

2020-01-17 12:54:16 158

原创 算法笔记 - ST表

定义 st[ i,j ] 表示左端点为 i ,长为( 1<< j )的区间最值 原理 (1)构造:由于ST表表示的区间长度为2^j,可以分割成左右两部分,每个点为起点都有 O(logN) 个区间,预处理总时间、空间复杂度都为 O(NlogN)。 (2)查询:求任意区间的最值都可以按照下图拆分,注意这里的区间可能会出现互相覆盖的情况,所以ST表只适用于维护允许区间重叠的性质,复杂度O(...

2020-01-17 12:34:30 133

原创 2019 ICPC 南昌网络赛 - Subsequence (子串判断,预处理,超时)

???? ???? ???? 题意:一个字符串s,t个字符串p,判断p是不是s的子序列 预处理出对于字符串s,每个位置i之后第一个字母x的位置,匹配子序列的时候就相当于在母串上往后跳,如果跳到母串末尾,子序列还没有结束,匹配失败。 然而!超时了QAQ,只能过八组样例,网上也只能找到过九组的,,,希望有哪位大神路过指点一下了 int tag[33],nxt[MAXN][30]; char s[MAXN],p[MAXN...

2020-01-16 21:27:51 166

原创 2019 ICPC 南昌网络赛 - Coloring Game(方案数)

???? ???? ???? 一开始往DP狂想QAQ,是计数啊,,, *2*3^(n-2)2 第一列和最后一列有两种情况,剩下的格子走或者不走 其余列有三种情况,走哪一个和都走 signed main() { ll n;cin>>n; if(n==1) cout<<1<<endl; else { ll ans=qpow(3,n-2); cout<<(a...

2020-01-16 19:59:36 86

原创 Codeforces Round #570 (Div. 3) E - Subsequences (easy version) (广搜)

???? ???? ???? 题意:从一个字符串中找到k个不重复的子序列,删除的字符数之和最小为多少 最先想到的肯定是只删除一个,接着就是只删除两个。。。应该想到使用队列按顺序检验字符串,有点像那个在房子旁边安排人的题,那个也是从最靠近的部分开始贪心,还有就是string 中使用erase这个函数,如果不希望原字符串改变,一定要先把原字符串拷贝一下QAQ signed main() { int n,k;cin&g...

2020-01-16 14:45:47 177

原创 Codeforces Round #569 (Div. 2) D - Tolik and His Uncle (构造)

???? ???? ???? 题意:有一个n*m的矩形,初始位于(1,1)位置,要走遍这个矩形,且(dx,dy)不可重复,输出一种可行方案 首先考虑一维情况,肯定是反复横跳:1,5,2,4,3,x轴这么走,y轴也这么走,综合起来,二维就是走中心对称的点,然后就是模拟,用l,r记录两边走到哪一行,最后特殊情况处理一下 //中心对称 signed main() { int n, m;cin >> n &g...

2020-01-15 20:09:02 121

原创 Educational Codeforces Round 80 (Rated for Div. 2) C - Two Arrays(DP)

????‍♀️ ????‍♀️ ????‍♀️ 题意:从1~n里面选出来m个数字组成a数组,再选出来m个组成b数组,要求a非递减,b非递增,且bi>=ai 题目挺有意思(短)的,解题过程分两步: 1,说是选两个数组其实就是选出来一个长m*2的非递减数组 2,假设要从n的全排列中选出来m长的非递减数组,因为元素是可重复的,最多重复m次,其实就是相当于从下面这个矩阵中选择元素 从这个矩阵中选择元素,每行只能选择一...

2020-01-15 11:09:24 215

原创 Codeforces Round #567 (Div. 2) C - Flag (枚举,方案数)

???? ???? ???? 题意:一个矩形里面有多少子矩阵满足,可以按行划分成三个高度相同的部分,其中每一个部分中的颜色完全相同,第一部分的颜色与第二部分颜色不同,第二部分的颜色和第三部分的颜色不同。 注意n,m数据范围,O(n*m)的复杂度适合,枚举每个点作为矩形顶点的方案数,这里计数的一种方法就是枚举右上角,通过k值计算该点向左能延伸多远,就是该点作为右上角顶点的方案数 char s[1111][1111];...

2020-01-14 21:16:47 106

原创 AcWing 275. 传纸条 (线性DP)

✉ ✉ ✉ //dp[k,x1,x2]表示总共走了k步,第一条路线在x1行,第二条路线在x2行 max //dp[k,x1,x2]---> //dp[k-1,x,y],dp[k-1,x-1,y],dp[k-1,x,y-1],dp[k-1,x-1,y-1] //1<=x1<=n;------>x1>=1 , x1<=n //1<=k-x1<=m --...

2020-01-12 21:24:27 147

原创 Hello 2020 C - New Year and Permutation(方案数计算)

???? ???? ???? (1)区间长度等于极差—>该区间排完序后为连续一段数字 (2)枚举满足(1)条件的区间长度,每一个固定长度对应方案数的计算就是高中数学那一套。。 int n, mod; ll ans = 0, fac[MAXN]; signed main() { cin>>n>>mod; fac[1] = 1; for(int i = 2; i <= n; i...

2020-01-12 16:12:18 200

原创 Hello 2020 B - New Year and Ascent Sequence (容斥)

???? ???? ???? 1,需要寻找的方案出现:满足 A条件 or B条件 均可计算在内, 而有可能存在方案符合多个(A and B)条件,(可能会计算重复) 这种情况下考虑容斥 2,求满足最大值小于最小值的对数,利用单调性, 如果最大值maxv,最小值minv集合有序,i<j 如果某minv[k]>=maxv[j] 则 一定存在minv[k]>maxv[i],(即当前数组不符合条件的对数是...

2020-01-12 15:27:52 234

原创 AcWing 274. 移动服务

???? ???? ???? //考虑快递员数量这个特殊的数据范围 //考虑暴搜 //考虑坐标范围这个特殊的数据范围 //dp[i,x,y] 处理到第i个,其他两个快递员在x,y位置的最短时间 //dp[i,x,y] ---> //dp[i+1,x,y] = dp[i,x,y] + c[p[i]][p[i+1]] //dp[i+1,p[i],y] = dp[i,x,y] + c[x][p[i+1]] //d...

2020-01-11 23:05:14 188

C++水电煤气管理.zip

C++水电煤气管理.zip

2020-06-24

空空如也

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

TA关注的人

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