自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 “蔚来杯“2022牛客暑期多校训练营1部分题解(待补)

思路贪心,因为发电站就一个,每个建筑物都会有一个影响区间和收影响区间,将建筑物分为在发电站左侧和发电站右侧,不断的维护和更新发电的影响区间,即最大的L,R,若建筑物的受影响区间不在L,R就对ans加上贡献,不断的更新L,R。那么多余每个dp[j][i],如果没有取到我想要的牌,可以由dp[j-1][i]转移过来,并且再算上此时的概率,如果取到了我想要的牌,可以由dp[j-1][i-1]转移过来,同时算上此时的概率。由样例的启发,Q点到圆心的连线为L,与L垂直的方向最优,然后画图作解。...

2022-07-18 21:38:59 556 2

原创 Educational Codeforces Round 112 (Rated for Div. 2) A-D

A. PizzaForces可以发现每个披萨都是2片5分钟,那么对于偶数的情况ans=n/2*5/。对于奇数的情况需要多给一片,那么让n++ 后,成为偶数再处理。#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ int t; cin>>t; while(t--) { ll n; cin>>n; ll ans=0; if(n<=6

2021-07-31 10:05:14 169

原创 Codeforces Round #735 (Div. 2) A-D

这场上分场,早知道用大号打了。。A. Cherry区间肯定越小越好,那就找一个相邻乘积最大的。AC#include<bits/stdc++.h>using namespace std;typedef long long ll;ll a[100010];int n;void get(){ ll anss=-1; for(int i=1;i<n;i++){ anss=max(anss,a[i]*a[i+1]); } cout<<anss&l

2021-07-30 10:41:13 190

原创 Codeforces Global Round 15 A、B、D

A. Subsequence Permutation思路:直接排序再统计相同的个数,答案是长度-相同的个数#include<bits/stdc++.h>using namespace std;string s;string c;int ans;int main(){ int t; cin>>t; int n; while(t--) { cin>>n; cin>>s; c=s; sort(c.begin(),c.end

2021-07-26 10:34:19 135

原创 Codeforces Round #721 (Div. 2) C. Sequence Pair Weight

如图:AC代码: #include<bits/stdc++.h> using namespace std; const int N=1e5+10; typedef long long ll; ll a[N]; map<ll,ll> mp; int main() { int t; cin>>t; while(t--) { int n; cin>>n; mp.clear(); ll ans=0;

2021-05-21 14:28:12 247 1

原创 【动态规划】数字三角形模型 AcWing 1027. 方格取数 275. 传纸条

思路:不能分开走分开两次走(贪心):第一次走到(n,n)求除最大值并记录路径上点收益为0后再走一次。第一次走为局部最优并且也对第二次走造成了影响,第二次走是在第一次影响下所能走的局部最优,不具备“无后效性”,因此分开两次走并不是全局最优解。解法:代码如下://方格取数 #include<bits/stdc++.h>using namespace std;const int N=100;int f[N][N][N];int n;int g[N][N];int main(

2021-05-11 14:35:34 94

原创 Codeforces Round #720 (Div. 2)题解

题目链接:https://codeforces.com/contest/1521A. Nastia and nearly Good Numbers一开始题意看错了。。。。思路:直接构造。首先三个数都是A的个数既然两个不能被B整除。那么就直接构造 ans1=A* B* 2ans2=A*(B-1)ans3=A*(B+1)然后 按顺序输出,最大的在后面!!。 (比赛的时候这里WA了,幸好是test1)再特判一下 B=1的时候 输出NOAC代码#include<bits/stdc

2021-05-08 01:07:37 759 6

原创 Codeforces Round #719 (Div. 3) A-G题解 G题详细注释

题目链接:https://codeforces.com/contest/1520A. Do Not Be Distracted!思路:数据范围小,直接暴力。AC代码#include<bits/stdc++.h>using namespace std;const int N=100;typedef long long ll;typedef pair<int,int> PII;map<char,int> mp;int main(){ int t;

2021-05-07 15:34:34 280 2

原创 洛谷P2853 [USACO06DEC]Cow Picnic S 题解

题目连接:https://www.luogu.com.cn/problem/P2853题意:有n个奶牛在不同牧场,牧场之间有m条路。求所以奶牛都能共同到达的牧场的数量思路:dfs每一个奶牛可以到的牧场。开一个d[N]数组记录d[i] i这个牧场能来的奶牛的个数,如果d[i]==n,就符合题意。AC代码:#include<bits/stdc++.h>using namespace std;const int N=101000;vector<int> p[N];

2021-04-30 16:29:58 217 1

原创 Educational Codeforces Round 108 (Rated for Div. 2) ABCD题解

题目连接:https://codeforces.com/contest/1519A.Red and Blue Beans题目思路:1.构造最优的状态,即一个是1,一个是1+d2.先比较r,b的大小,让小的是r,那么最多需要(1+d)*r个 b。3.最多的和b比较一下就行了AC代码:#include<bits/stdc++.h>using namespace std;const int N=1;typedef long long ll;map<int,int>

2021-04-30 15:01:33 191

原创 Codeforces Round #717 (Div. 2)A-B详解

题目链接:https://codeforces.com/contest/1516A.Tit for Tat题意:给定一个数组,然后再给定n和k。你可以执行操作如下:给任意两个不同的元素(下标不同)一个加上1,一个减掉1。最多执行k次这样的操作,请你给出一个字典序最小的数组。...

2021-04-22 23:28:29 258

原创 Divide by Zero 2021 and Codeforces Round #714 (Div. 2) C Add One题解(预处理)(详细注释)

题目链接:https://codeforces.com/contest/1513/problem/C题目大意:给定一个数n和一个m,每一个的操作,让n的每一位加上1,求出执行m次操作后,n的长度。思路:1.开一个k数组和一个ans数组2.ans[x]存的是,让执行x次后,0这个数字产生的长度。3.k[x]存的是当执行i次后,x这个数字的个数。4.然后每一次的遍历,ans[i]的计算就是0到9的个数5.具体见代码。AC代码:#include<bits/stdc++.h>#d

2021-04-12 09:52:58 407

原创 Educational Codeforces Round 96 (Rated for Div. 2)C. Numbers on Whiteboard

题目链接:https://codeforces.com/problemset/problem/1430/C思路:(贪心)1.一开始想的是头尾相加,结果是中间的值,后来发现不对,最优的方法应该是从后面最大的相加/2,最终答案都是2AC代码:#include<bits/stdc++.h>using namespace std;const int N=2e5+10;int a[N];int ans;int t,n;int main(){ cin>>t; whil

2021-04-01 14:54:51 97

原创 Codeforces Round #677 (Div. 3)D. Districts Connection

题目链接:https://codeforces.com/problemset/problem/1433/D思路:因为只要相连的城市不是属于同一个帮派,可以间接相连。所以只要找到两个不同的即可。AC代码#include<bits/stdc++.h>using namespace std;const int N=5010;int t;int a[N];int k;int main(){ cin>>t; while(t--) { int n; ci

2021-04-01 14:51:09 101

原创 Codeforces Round #682 (Div. 2)B. Valerii Against Everyone

题目链接:https://codeforces.com/contest/1438/problem/B**题目大意:给定bi,会生成一个ai,ai=2^bi。 然后要求找出4个数,l1,r1,l2,r2.满足1≤l1≤r1<l2≤r2≤n;al1+al1+1+…+ar1−1+ar1=al2+al2+1+…+ar2−1+ar2.输出YES or NO思路:看到bi范围那么大肯定就不是暴力了。想半天结论竟然没推出来。。1.要想让两个区间相等,那么最好的就是找两个数相等。所以,如果有两个数

2021-03-31 22:31:28 63

原创 Codeforces Round #683 (Div. 2, by Meet IT)B - Numbers Box

题目链接:https://codeforces.com/problemset/problem/1447/B**思路:**既然要使答案结果最大,那么就是要让矩阵中的数尽可能的是正数。很明显的可以推出来,如果二维数组中<=0的数的个数为偶数,那么答案就是数组的绝对值的总和,如果是奇数,那么让数组中最小的数变成负,其他都是整数。AC代码:#include<bits/stdc++.h>using namespace std;const int N=15;int a[N][N]

2021-03-31 21:34:31 131

原创 Educational Codeforces Round 100 (Rated for Div. 2)A. Dungeon

题目链接:https://codeforces.com/contest/1463/problem/A(贪心)*思路:每一个周期发射的攻击是9,所以要使相同的增强的攻击击杀,三个数的总数一定要是9的倍数,同时,3个数都要撑过sum/9,即多少个周期,每个周期最少减一次。AC代码#include<bits/stdc++.h>using namespace std;typedef long long ll;ll t;ll a[4];map<ll,ll> mp;

2021-03-31 21:15:29 58

原创 CodeCraft-21 and Codeforces Round #711 (Div. 2)A-D题解

题目链接:https://codeforces.com/contest/1498A. GCD Sum题意给定一个数n,求这个数和他每个位上的数的和的GCD。如果这个GCD是1,那么找比n大的,且最近的满足这个GCD>1的数。思路:按照题意模拟后发现,最坏的情况也是n+2的时候就找到了,所以,n最多加2。然后按照题意模拟即可AC代码#include<bits/stdc++.h>#define IOS ios::sync_with_stdio(0); cin.tie(0);

2021-03-31 15:39:49 228 1

原创 Codeforces Round #708 (Div. 2) B - M-arrays

题目链接:https://codeforces.com/contest/1497/problem/B思路:根据同余模定理,把数组当中每个数对m取模,然后放在一个vis数组中, 余数为x的和m-x的相匹配,而且这两个数如果相差小于等于1,那么组数加一即可,因为 x ,m-x, x 只需要一组,如果大于1 那么多余的就需要单独一组。AC代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;typedef p

2021-03-22 08:53:59 100

原创 牛客练习赛78

太菜了就写了A和B,B还卡半天。。。写贴代码思路明天写A#include<bits/stdc++.h>#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);using namespace std;typedef long long ll;const int N=1e4+10;char s[N][4];char s2[3];int n;int q; int main(){ cin>>n

2021-03-12 22:17:55 72

原创 Educational Codeforces Round 92 (Rated for Div. 2) C. Good String

题目链接:https://codeforces.com/problemset/problem/1389/C思路:自己写的时候也推出来了。要么两个数字周期出现。并且长度必须为偶数要么一个数字。自己写的时候一直想直接构造出来…没想到直接是暴力枚举。对于字符串0-9这种范围还不太敏感。。直接枚举第一个数字和第二个数字取最少的就好。注意:第一个和第二个字母不同时,长度不能为奇数。如果是奇数,要-1。AC代码#include<bits/stdc++.h>using names

2021-03-12 17:08:55 103

原创 Codeforces Round #693 (Div. 3)D. Even-Odd Game(博弈)

题目链接:https://codeforces.com/problemset/problem/1472/D思路:博弈题,一开始把想难了,wa了一发后,就去排序了。从大到小排序即可,奇数的时候A拿,如果是偶数,sumA+=a[i],偶数的时候B拿,如果是偶数,sumB+=a[i].AC代码//D. Even-Odd Game#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=2

2021-03-12 15:20:28 109

原创 1470A - Strange Birthday Party(贪心)

题目链接:https://codeforces.com/problemset/problem/1470/A选的标签是dp…思路:将k数组从大到小排序即可,用一个h记录 1-ki 个数前面最小的数的位置,如果没有被用过就拿,用过了直接加 Cki。AC代码://A. Strange Birthday Party#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=3e5+10;ll

2021-03-12 14:47:15 144

原创 浙江农林大学蓝桥杯程序设计竞赛校选拔赛(补题)

前言:第一场团队赛,和队友没配合好,成绩不太理想。应该几个人开一道的,都管自己想了。想法应该汇总一下,每个人都差一点点…A思路:签到题,队友理解题意理解错了WA了好几发。我一发A了。。。。1.小于k的增加到它可以增加的最多数量2.大于等于h的不变3.最后有一次增加h的机会,总数ans加个k就ok了AC代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=2e6+5;

2021-03-11 21:11:38 332

原创 Codeforces Round #706 (Div. 2) A-D题解

题目链接:https://codeforces.com/contest/1496A思路:(1).对k的大小进行考虑。如果k=0,直接YES;如果2*k+1>n,直接NO。(2)字符串是以ABA形式存在,所以判断字符串前半段与后半段是否对称。并且,对称的长度,num>=k。AC代码: #include<bits/stdc++.h> using namespace std; char s[110]; int n,k,t; int main() { cin&gt

2021-03-11 16:44:13 2338 9

原创 Codeforces Round #704 (Div. 2) B

水题。B. Card Decktime limit per test1 secondmemory limit per test512 megabytesinputstandard inputoutputstandard outputYou have a deck of n cards, and you’d like to reorder it to a new one.Each card has a value between 1 and n equal to pi. All pi are p

2021-03-06 19:53:17 85

原创 第 45 届国际大学生程序设计竞赛(ICPC)亚洲区域赛(济南) G Xor Transformation

题目大意:给X 和Y , X>Y。求在5步内,X xor 到Y的方案。1.xor的意思是异或。2.异或运算可以用^实现。3.异或运算是可逆的。A^B=C. C^A=B ,C^B=A;了解这些后,解题思路就很清晰了。1.求X^Y=Z, 如果Z<X,则只需要1步即可,因为可逆,X^Z=Y;2.如果Z>X,则先让X^Y,得到Z,则X变成Z,再 Z^X=Y;AC代码如下:(记得开long long)#include<bits/stdc++.h>using na

2021-03-06 19:18:04 146

原创 Codeforces Round #690 (Div. 3) B

题目链接:https://codeforces.com/contest/1462B. Last Year’s Substringtime limit per test2 secondsmemory limit per test256 megabytesinputstandard inputoutputstandard outputPolycarp has a string s[1…n] of length n consisting of decimal digits. Polycarp perf

2021-03-04 14:25:58 52 1

原创 2021牛客寒假算法基础集训营1 A-串

思路:DP思想实现代码:#include<bits/stdc++.h>using namespace std;const int N=1000010;const int M=1e9+7;int n;long long f[N][3];int main(){ cin>>n; f[1][0]=25; //f[i][0] 前面没有u f[1][1]=1; //f[i][0] 有一个或者多个u (没有us) f[1][2]=0; //f[i][..

2021-02-02 22:51:45 139

原创 2021牛客寒假算法基础集训营1 C 红和蓝

打比赛的时候没来得及看这道题,赛后发现这道题和我之前总结的数组模拟邻接表和图等很有关系。赛后花了蛮长时间理解。思路:判断是否染色后,再用异或的计算,相同为0,不同为一,染上R和BAC代码:PS(因为是有两条边,所以e和ne记得开N*2)#include<bits/stdc++.h>using namespace std;const int N=100010;int n,h[N],e[N*2],ne[N*2],f[N],col[N],idx;int son,cnt;int .

2021-02-02 20:52:09 228

原创 AcWing 850. Dijkstra求最短路 II

#include<bits/stdc++.h>using namespace std;const int N=150010;typedef pair<int,int> PII;//<离起点的距离,节点编号>int h[N],e[N],ne[N],idx,w[N];int dist[N];bool st[N];int n,m;//在a结点之后插入一个b节点,权重为cvoid add(int a,int b,int c){ e[idx]=b;

2021-01-31 23:42:12 58

原创 搜素与图论总结(一)

DFS模板以全排列为例子#include<bits/stdc++.h>using namespace std;int a[10];int n;bool st[10];void dfs(int u){ if(u==n) { for(int i=0;i<n;i++) cout<<a[i]<<' '; cout<<endl; return ; } for(in

2021-01-31 23:41:53 86

转载 (转载)AcWing 849. Dijkstra求最短路 I (超级详细的题解)

Dijkstra求最短路作者:z林深时见鹿链接:https://www.acwing.com/solution/content/23358/来源:AcWing最短路问题朴素版本的 Dijkstra算法Dijkstra算法迪杰斯特拉算法(Dijkstra)是由荷兰计算机科学家狄克斯特拉于1959 年提出的,因此又叫狄克斯特拉算法。是从一个顶点到其余各顶点的最短路径算法,解决的是有权图中最短路径问题。迪杰斯特拉算法主要特点是从起始点开始,采用贪心算法的策略,每次遍历到始点距离最近且未访问过的顶点

2021-01-31 09:48:00 243

原创 AcWing 849. Dijkstra求最短路 I

见代码#include<bits/stdc++.h>using namespace std;const int N=510;int dist[N];//用于存储每个点到起点的最短距离bool st[N];//用于在更新最短距离时 判断当前的点的最短距离是否确定 是否需要更新int g[N][N];//为稠密阵所以用邻接矩阵存储int n,m;int dijkstra(){ memset(dist,0x3f,sizeof(dist)); //初始化距离,0x3

2021-01-30 23:37:03 79

原创 Acwing 848. 有向图的拓扑序列 (拓扑排序-模拟队列和链表-模板题)

拓扑排序只适用于有向无环图思路:用队列来执行,初始化所有入度为0的顶点入队主要由以下两步循环执行,直到不存在入度为0的顶点为止1.选择一个入度为0的顶点,并将它输出;2.删除图中从顶点连出的所有边判断:循环结束后,如果输出的顶点数小于图中的顶点数,则表示该图存在回来,即无法拓扑排序否则,输出的就是拓扑排序(不唯一)模板:#include <iostream>#include <cstring>#include <algorithm>using

2021-01-30 20:59:15 171

原创 数组模拟队列在BFS中的运用(1)AcWing 844. 走迷宫

AcWing 844. 走迷宫BFS思路伪代码:#include<bits/stdc++.h>using namespace std;const int N=110;typedef pair<int,int> PII;int n,m;int g[N][N];int d[N][N];PII q[N*N];int bfs(){ int hh=0,tt=0; q[0]={0,0}; memset(d,-1,sizeof(d)); d[0][0]=0;

2021-01-27 23:10:59 100

原创 用数组模拟队列和链表

用数组模拟队列和链表1.用数组模拟队列在队尾插入元素,在队头弹出元素定义方式:int q[N],hh,tt=-1;//hh是队头,tt是队尾,令tt=-1插入元素x:(push操作)q[++tt]=x;弹出队头元素(pop)hh++;取出队头元素q[hh];判断队列是否为空if(hh<=tt) not emptyelse empty理解方式:当hh++时,即弹出元素,tt++时插入元素。2.用数组模拟链表时间复杂度分析:链表在插入的时候可以达到

2021-01-27 22:48:48 98 1

原创 AcWing.271杨老师的照相排列【动态规划】

2020/12/20 10.02 浙江安吉题目链接:https://www.acwing.com/problem/content/273/题目:有 N 个学生合影,站成左端对齐的 k 排,每排分别有 N1,N2,…,Nk 个人。 (N1≥N2≥…≥Nk)第1排站在最后边,第 k 排站在最前边。学生的身高互不相同,把他们从高到底依次标记为 1,2,…,N。在合影时要求每一排从左到右身高递减,每一列从后到前身高也递减。问一共有多少种安排合影位置的方案?下面的一排三角矩阵给出了当 N=6,k=3,

2020-12-20 10:02:28 174 1

原创 ACwing 动态规划总论

ACwing 动态规划总论看lyd视频总结2020.12.18 19:41动态规划题目特点1.计数有多少种方式走到右下角有多少种方法选出k个数使得和是Sum2.求最大值最小值从左上角到右下角路径的最大数字和最长上升子序列长度3.求存在性取石子游戏,先手是否必胜能不能选出K个数使得和是Sum经典例题1.LIS(求最长上升子序列)题目描述:给定一个长度为N的数列,求数值严格单调递增的子序列的长度最长是多少。输入格式第一行包含整数N。第二行包含N个整数,表示...

2020-12-18 20:40:55 252 1

空空如也

空空如也

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

TA关注的人

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