- 博客(77)
- 资源 (1)
- 收藏
- 关注
原创 The 2021 Shanghai Collegiate Programming Contest
F,I,K,待补,L大模拟…完整代码详细见,点击跳转文章目录[The 2021 Shanghai Collegiate Programming Contest](https://codeforces.com/gym/103186)A. 小 A 的点面论(暴力)B. 小 A 的卡牌游戏(贪心优化dp)C. 小 A 的期末考试(排序)D. Zztrans 的班级合照(dp)E. Zztrans 的庄园(期望)F. 鸡哥的限币令G. 鸡哥的雕像(逆元)H. 鸡哥的 AI 驾驶(二分+思维)I. 对线J. Al
2022-05-17 00:11:34 733
原创 Codeforces Round #790 div4
Round #790 (Div 4)全部代码放在GitHub上了,点击跳转文章目录A. Lucky?(签到)B. Equal Candies(签到)C. Most Similar Words(暴力)D. X-Sum(暴力)E. Eating Queries(前缀和+二分)F. Longest Strike(模拟)G. White-Black Balanced Subtrees(dfs)H2. Maximum Crossings (Hard Version)(逆序对)A. Lucky?(签到)思路:语
2022-05-11 23:23:51 388
原创 Codeforces Round #785 div2
Round #785 (Div. 2)文章目录A. Subtle Substring Subtraction(签到)B. A Perfectly Balanced String?(思维)C. Palindrome Basis(完全背包)D. Lost Arithmetic Progression(数学)A. Subtle Substring Subtraction(签到)思路:nnn为奇数时,头大吃头,尾大吃尾,留下一个给BobBobBob,再做比较;nnn为偶数,AliceAliceAlice全吃必
2022-05-10 00:12:14 339
原创 Codeforces Round #789 div2
Round #789 (Div. 2)文章目录A. Tokitsukaze and All Zero Sequence(签到)B2. Tokitsukaze and Good 01-String (hard version)(贪心)C. Tokitsukaze and Strange Inequality(枚举+前缀和)A. Tokitsukaze and All Zero Sequence(签到)思路:分类讨论:若序列中有000,ans=n−tt(0)ans=n-tt(0)ans=n−tt(0);若
2022-05-09 23:41:15 470
原创 第20届上海大学程序设计联赛春季赛(同步赛)
第20届上海大学程序设计联赛春季赛(同步赛)文章目录A. 如何才能穿过传送门(思维)B 逃离魔爪(二维树状数组)C 古老的恩尼格玛机(签到)D 并不智能的卡牌 AI(签到)E 林荫小径(待补)F 到底是多少分啊(待补)G 多吃蘑菇(待补)H 差不多得了(签到)I 数学题真难啊(dp+数学)A. 如何才能穿过传送门(思维)思路:往左走是无效的,因此只要考虑一直往右走即可Code:Code:Code:#include <bits/stdc++.h>us
2022-05-09 22:43:14 646
原创 最少乘法(思维+bfs)
最少乘法(思维+bfs)问题实质上是求正整数nnn的最短加法链问题,即求nnn的一个加法链使其长度lenlenlen达到最小,如下图所示按层扩展生成树,数x的下一层由其与路径上的各数字相加得出,之前出现过的舍弃,因此bfsbfsbfs即可Code:Code:Code:#include <bits/stdc++.h>using namespace std;#define endl '\n'#define y1 yyytypedef long long ll;typedef u
2022-04-30 15:28:39 487
原创 线段树笔记
代码源数据结构中级课第二课:线段树目录线段树1线段树2线段树打标记1线段树打标记2线段树上二分单点修改+区间查询最值:struct node{ int val;}seg[N*4];void update(int id){ seg[id].val=min(seg[id*2].val,seg[id*2+1].val);}void build(int id,int l,int r){ if(l==r) seg[id].val=a[l]; else{ int mid=(l+r)>&
2022-04-28 20:38:43 1668
原创 树状数组笔记
代码源数据结构中级课第一课:树状数组笔记目录树状数组1树状数组2逆序对2树状数组二分二维树状数组树状数组1思路:lowbitlowbitlowbit:求二进制数最低位111和尾端000构成的二进制数,lowbit(x)=x&(−x)lowbit(x)=x\&(-x)lowbit(x)=x&(−x)树状数组ci=∑j=i−lowbit(i)+1iajc_i=\sum_{j=i-lowbit(i)+1}^ia_{j}ci=∑j=i−lowbit(i)+1iaj单点加:
2022-04-27 21:19:29 1759 2
原创 2022/4/22 天梯赛刷题记录&2018天梯赛
L1-8 语法+模拟L2-1 图论L2-2 bfsL2-3 stl排序目录L1-1 天梯赛座位分配L1-2 倒数第N个字符串L1-3 打折L1-4 2018我们要赢L1-5 电子汪L1-6 福到了L1-7 谁是赢家L1-8 猜数字L2-1 分而治之L2-2 小字辈L2-3 名人堂与代金券L1-1 天梯赛座位分配#include <bits/stdc++.h>using namespace std;#define endl '\n';typedef long long ll;t
2022-04-22 12:49:06 630
原创 2022/4/21 天梯赛刷题记录&2019天梯赛
L1 语法+模拟L2-1 stlL2-2 stlL2-3 bfsL1-8 模拟太恶心没写比赛和期末考撞个满怀太累了,计组要寄了(悲…目录L1-1 PTA使我精神焕发L1-2 6翻了L1-3 敲笨钟L1-4 心理阴影面积L1-5 新胖子公式L1-6 幸运彩票L1-7 吃鱼还是吃肉L2-1 特立独行的幸福L2-2 冰岛人L2-3 深入虎穴L1-1 PTA使我精神焕发#include <bits/stdc++.h>using namespace std;#define endl
2022-04-21 21:47:33 482
原创 2022/4/20 天梯赛刷题记录
目录L2-005 集合相似度L2-009 抢红包L2-005 集合相似度set的使用#include <bits/stdc++.h>using namespace std;#define endl '\n';typedef long long ll;typedef pair<int,string> PII;const int N=1e5+10,mod=1e9+7;int n,m,k,x,y;set<int>st[N];int main() { s
2022-04-20 22:07:51 587 1
原创 2022/4/19 天梯赛刷题记录
目录L2-006 树的遍历L2-008 最长对称子串L2-030 冰岛人天梯赛的题面是越来越难读懂,读题真费劲L2-006 树的遍历#include <bits/stdc++.h>using namespace std;#define endl '\n';typedef long long ll;typedef pair<int,string> PII;const int N=1e5+10,mod=1e9+7;int n,in[N],pre[N],pos[N];
2022-04-19 13:09:12 169
原创 2022/4/18 天梯赛刷题记录&2022天梯赛热身赛
L1 1~8 语法到模拟L2-1 栈、mapL2-2 set、排序L2-4 模拟L3-2 背包L2-3 写不出来,二叉树这方面是真的薄弱周日热身赛的时候因为一直内部错误直接润了,今天重新做一下目录L1-1 自动编程L1-2 太神奇了L1-3 洛希极限L1-4 吃鱼还是吃肉L1-5 不变初心数L1-6 字母串L1-7 矩阵列平移L1-8 均是素数L2-1 盲盒包装流水线L2-2 点赞狂魔L2-4 哲哲打游戏L3-2 拼题A打卡奖励L1-1 自动编程#include <bits/stdc
2022-04-18 13:29:06 1000
原创 NewOJ Week 5
NewOJ Week 5C.E待补目录A. 并行处理(前缀和)B. 排列变换(思维)D. 矩阵(数学+前缀和)A. 并行处理(前缀和)思路:显然最短时间为min(max(∑i=1jai,∑i=j+1nai)min(max(\sum_{i=1}^{j} a_i,\sum_{i=j+1}^{n}a_i)min(max(∑i=1jai,∑i=j+1nai),1≤j≤n1\le j \le n1≤j≤n,前缀和处理一下复杂度:O(n)O(n)O(n)Code:Code:Code:#incl
2022-04-16 23:55:52 396
原创 2022/4/16 天梯赛刷题记录&2020天梯赛
L1-1~8 语法L2-1 栈L2-2 模拟L2-3 dfsL2-4 图论L2的题目读起来真费劲,L2-2模拟恶心坏了,L2-4没看见景点全逛一便找错找麻了,L3都没时间看目录L1-1 嫑废话上代码L1-2 猫是液体L1-3 洛希极限L1-4 调和平均L1-5 胎压监测L1-6 吃火锅L1-7 前世档案L1-8 刮刮彩票L2-1 简单计算器L2-2 口罩发放L2-3 完全二叉树的层序遍历L2-4 网红点打卡攻略L1-1 嫑废话上代码#include <bits/stdc++.h>
2022-04-16 17:09:04 962
原创 Codeforces 并查集题集(Disjoint Sets Union Step1)
ITMO Academy: pilot courseDisjoint Sets Union Step1A. Disjoint Sets Union思路:并查集模板111Code:#include <bits/stdc++.h>using namespace std;#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);typedef long long ll;typedef pair<int,int
2022-04-15 22:31:17 562
原创 2022/4/15 天梯赛刷题记录&2021天梯赛
L1-1~L1-8 语法题L2-1 模拟、stlL2-2L2-3 stlL2-4 模拟目录L1-1 人与神L1-2 两小时学完C语言L1-3 强迫症L1-4 降价提醒机器人L1-5 大笨钟的心情L1-6 吉老师的回归L1-7 天梯赛的善良L1-8 乘法口诀数列L2-1 包装机L2-3 清点代码库L2-4 哲哲打游戏L1-1 人与神#include <bits/stdc++.h>using namespace std;#define IOS ios::sync_with_stdi
2022-04-15 21:30:20 853
原创 代码源每日一题div1 质区间长度
思路:二分+线性筛+前缀和显然要求的这个最小的lenlenlen满足单调性,考虑二分求解l≤l≤r≤106l\le l\le r\le 10^6l≤l≤r≤106这个数据范围我们可以直接线性筛筛出质数,用前缀和预处理区间质数个数,即可Code:#include <bits/stdc++.h>using namespace std;#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);#define endl '
2022-04-14 18:03:49 340
原创 2022/4/14 天梯赛刷题记录
L2-019 悄悄关注思路:模拟+stl#include <bits/stdc++.h>using namespace std;#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);#define endl '\n';typedef long long ll;typedef pair<string,int> PII;const int N=1e5+10,mod=1e9+7;int n,k,x;
2022-04-14 17:17:34 1028
原创 2022/4/13 天梯赛刷题记录
L2-015 互评成绩思路:模拟#include <bits/stdc++.h>using namespace std;#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);#define endl '\n';typedef long long ll;typedef pair<int,int> PII;const int N=1e4+10,mod=1e9+7;int n,m,k;priorit
2022-04-13 23:15:23 269
原创 2022/4/12 天梯赛刷题记录
昨天做的题忘记发了…L2-010 排座位思路:并查集#include <bits/stdc++.h>using namespace std;#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);#define endl '\n';typedef long long ll;typedef pair<vector<int>,int> PII;const int N=1e3+10,mod=
2022-04-13 15:23:57 341
原创 第十九届浙大城市学院程序设计竞赛(同步赛)
第十九届浙大城市学院程序设计竞赛(同步赛)比赛中由于没看到I题的数据范围,写了个数状数组优化的LIS,一直写挂了,中途就去打游戏了,最近比较忙…剩余题天梯赛后补A. Who is The 19th ZUCCPC Champion思路:输出任意字符串即可Code:#include <bits/stdc++.h>using namespace std;#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);#de
2022-04-12 13:33:41 866
原创 2022/4/11 天梯赛刷题记录
教练要求天题赛前把真题刷一刷,最近真的事多,4.23天梯赛,4.24计组期末考试,还有一堆作业大报告,人麻了…先做L2,做题顺序全看题目名称,持续更新至4.23(一天也不多,甚至可能少,hhhL2-024 部落思路:并查集#include <bits/stdc++.h>using namespace std;#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);#define endl '\n';typede
2022-04-11 23:25:01 386
原创 代码源每日一题div1 最大权值划分
Daimayuan Online Judge思路:dpdpdp首先我们考虑对于某个序列的其中一段例如:[7,5,4,6][7,5,4,6][7,5,4,6]这一段拆分成:[7,5,4][6][7,5,4][6][7,5,4][6]两段,那么这两种情况对于前一段的结果是不会发生变化的,那么我们放到整个序列中,其每段都一定保证着单调但满足这一条件下,一定满足权值和最大吗?显然我们可以举出反例:[1,2,3,4][1][1,2,3,4][1][1,2,3,4][1]不如:[1,2,3][4,1][1,2,3
2022-04-07 23:04:12 492
原创 代码源每日一题div1 Ayoub‘s function
Daimayuan Online Judge思路:思维我们从问题的反面考虑,就是要求所有的子串减去只含000的子串,那问题转化成如何让只含000的子串尽可能的少,结论是将111尽可能的均匀的分布在这个字符串中显然我们有mmm个111就会分割出m+1m+1m+1个只含000的区间,那我们只要用总的子串个数减去这些只含000的区间的子串即可一个长度为lll的字符串的子串个数为:l∗(l+1)/2l*(l+1)/2l∗(l+1)/2现在我们来证明一下这个结论,为了方便我们只考虑整除的情况,即这些111划
2022-04-06 20:07:05 249
原创 代码源每日一题div1 环的数量
Daimayuan Online Judge思路:状压dp根据nnn的范围,很容易判断要用状压dpdpdp,我们可以用一个二进制数来表示当前这nnn个点,哪些点被访问,例如:110011100111001表示点1,4,51,4,51,4,5被访问那么我们定义dp[i][u]dp[i][u]dp[i][u]表示经过的点的状态为iii且最后一个点为uuu的方案数,那我们考虑起点就是状态iii这个二进制数的最低位的111代表的点如何求这个起点呢?我们想到lowbitlowbitlowbit函数求的是一个二
2022-04-06 00:19:06 213
原创 代码源每日一题div1 体育节
Daimayuan Online Judge思路:区间dp因为可以随便安排参赛人的顺序,显然我们把数组直接排序是更优的做法定义dp[i][j]dp[i][j]dp[i][j]为区间[i,j][i,j][i,j]中最小的答案,答案即为dp[1][n]dp[1][n]dp[1][n]而一个区间[i,j][i,j][i,j]可以由区间[i+1,j][i+1,j][i+1,j]添上一个a[i]a[i]a[i]得到或者由区间[i,j−1][i,j-1][i,j−1]添上一个a[j]a[j]a[j]得到由于数
2022-04-06 00:18:51 194
原创 代码源每日一题div1 区间和
Daimayuan Online Judge思路:构造图+bfs告诉我们LiL_iLi到RiR_iRi连续元素的区间和,可以转换成Li−1L_i-1Li−1到RiR_iRi两点之间有条通路,那么问题转化成是否能找到一条通路从000走到nnn,bfsbfsbfs一遍即可#include <bits/stdc++.h>using namespace std;#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);
2022-04-06 00:18:26 337
原创 代码源每日一题div1 社交圈
Daimayuan Online Judge思路:贪心显然可以maxL[i]maxL[i]maxL[i]和maxR[i]maxR[i]maxR[i]的人重合在一起即可#include <bits/stdc++.h>using namespace std;#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);#define endl '\n'typedef long long ll;typedef pair&l
2022-04-05 11:21:49 201
原创 代码源每日一题div1 拆拆
Daimayuan Online Judge思路:数论+组合先不考虑正负号,先对xxx质因数分解,需要yyy个数,抽象成yyy个盒子,每个盒子自带一个111,如果没有质因子放入,其就为111例如:x=12=2∗2∗3,y=3x=12=2*2*3,y=3x=12=2∗2∗3,y=3,当我们放入结果为[1][1∗2∗2][1∗3][1][1*2*2][1*3][1][1∗2∗2][1∗3],当前贡献结果为(1,4,3)(1,4,3)(1,4,3)对于相同的质因子,其模型对应为球盒模型中:球(m)相同盒(
2022-04-05 11:20:18 202
原创 代码源每日一题div1 字典序最小
Daimayuan Online Judge思路:单调栈因为每个数至少出现一次,维护一个lastlastlast数组记录每个数最后一次出现的位置,在单调栈移动过程中,如果栈顶元素大于当前元素且栈顶元素之后仍会出现就将其弹出,最后存入数组倒序输出即可#include <bits/stdc++.h>using namespace std;#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);#define endl
2022-04-05 11:19:10 190
原创 代码源每日一题div1 平方计数
Daimayuan Online Judge思路:计数题注意到Ai≤106A_i \le 10^{6}Ai≤106,因此可以考虑用一个桶a[i]a[i]a[i]来存储数据ans=∑i=1maxai∑j=i+1maxai+1a[i]∗a[k]∗([k==j∗j−i∗i]∗[k<m])ans=\sum_{i=1}^{maxa_i} \sum_{j=i+1}^{maxa_i+1} a[i]*a[k]*([k==j*j-i*i]*[k<m])ans=∑i=1maxai∑j=i+1maxai
2022-04-05 11:18:04 215
原创 代码源每日一题div1 最大公约数
Daimayuan Online Judge思路:数学枚举+环上问题如果将环切成kkk段,那么有x=gcd(d1,d2,⋅⋅⋅,dk)x=gcd(d_1,d_2,···,d_k)x=gcd(d1,d2,⋅⋅⋅,dk)我们可以发现di=x∗kid_i=x*k_idi=x∗ki,因此sum=∑di=x∗∑kisum=\sum d_i=x*\sum k_isum=∑di=x∗∑ki,我们发现xxx是数组和的一个因子,由于sum≤1011sum\le10^{11}sum≤1011,计算得到它的因
2022-04-05 11:16:37 243
原创 代码源每日一题div1 蜗蜗的数列
Daimayuan Online Judge思路:构造+差分维护为了判断AAA,BBB是否相等,我们可以构造 C[i]=A[i]−B[i]C[i]=A[i]-B[i]C[i]=A[i]−B[i],问题转化为判断 C=0C=0C=0由于差分可以维护区间加,我们自然可以想到维护一个D[i]=C[i]−C[i−1]−C[i−2]D[i]=C[i]-C[i-1]-C[i-2]D[i]=C[i]−C[i−1]−C[i−2],其中D[1]=C[1],D[2]=C[2]−C[1]D[1]=C[1],D[2]=C[2
2022-04-05 11:15:15 262
原创 代码源每日一题div1 路径计数2
Daimayuan Online Judge思路:dp+组合+dfs记忆化搜索由于本题n≤106n\le10^6n≤106,因此我们不可能用一个dp[i][i]dp[i][i]dp[i][i]去跑dp但注意到m≤103m\le 10^3m≤103,用dp[i]dp[i]dp[i]去表示(1,1)(1,1)(1,1)到第iii个障碍点不经过其他障碍的方案数通过组合数学的知识,我们可以知道(x1,y1)(x_1,y_1)(x1,y1)到(x2,y2)(x_2,y_2)(x2,y2)的方案数为C(
2022-04-05 11:12:33 200
原创 代码源每日一题div1 序列操作
Daimayuan Online Judge思路:离线+思维用一个last[x]=ilast[x]=ilast[x]=i数组维护第iii次操作将a[x]=ya[x]=ya[x]=y用一个b[i]b[i]b[i]数组维护第i次操作后操作2造成的此时a[i]a[i]a[i]的改变,可以从最后一次往前遍历,显然满足b[i]=max(b[i],b[i+1])b[i]=max(b[i],b[i+1])b[i]=max(b[i],b[i+1])最后第iii个数的值为:max(a[i],b[last[i]])ma
2022-04-05 11:11:13 290
原创 代码源每日一题div1 最长因子链
Daimayuan Online Judge思路:dpdpdp,类似于最长上升子序列#include <bits/stdc++.h>using namespace std;#define IOS ios::sync_with_stdio(false),cin.tie(0),cout.tie(0);typedef long long ll;typedef pair<int,int> PII;const int N=1e6+10,mod=1e9+7;int n,a[N],
2022-04-05 11:09:11 142
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人