自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 D - 封印之门

蒜头君被暗黑军团包围在一座岛上,所有通往近卫军团的路都有暗黑军团把手。幸运的是,小岛上有一扇上古之神打造的封印之门,可以通往近卫军团,传闻至今没有人能解除封印。封印之门上有一串文字,只包含小写字母,有k种操作规则,每个规则可以把一个字符变换成另外一个字符。经过任意多次操作以后,最后如果能把封印之门上的文字变换成解开封印之门的文字,封印之门将会开启。蒜头君战斗力超强,但是不擅计算,请你帮忙蒜头君计算至少需要操作多少次才能解开封印之门。Sample Inputabcddddd3a bb c

2021-03-20 19:04:32 213

原创 B - 程序设计:引爆炸弹

在一个 n×m的方格地图上,某些方格上放置着炸弹。手动引爆一个炸弹以后,炸弹会把炸弹所在的行和列上的所有炸弹引爆,被引爆的炸弹又能引爆其他炸弹,这样连锁下去。现在为了引爆地图上的所有炸弹,需要手动引爆其中一些炸弹,为了把危险程度降到最低,请算出最少手动引爆多少个炸弹可以把地图上的所有炸弹引爆。输入格式第一行输两个整数n,m,用空格隔开。接下来 n 行,每行输入一个长度为 m的字符串,表示地图信息。0表示没有炸弹,1表示炸弹。数据约定:对于 60% 的数据:1≤n,m≤100;对于 100%的

2021-03-20 17:02:54 168

原创 A - Books Exchange (hard version)(传递书籍一个轮回所需天数)

The only difference between easy and hard versions is constraints.There are n kids, each of them is reading a unique book. At the end of any day, the i-th kid will give his book to the pi-th kid (in case of i=pi the kid will give his book to himself). It

2021-03-20 16:31:59 143

原创 J - Nightmare(携带炸弹的噩梦)

Ignatius had a nightmare last night. He found himself in a labyrinth with a time bomb on him. The labyrinth has an exit, Ignatius should get out of the labyrinth before the bomb explodes. The initial exploding time of the bomb is set to 6 minutes. To preve

2021-03-20 16:27:33 105

原创 寒假算法训练6-F(二进制矩阵变换问题)

思路:题目实质上是问从零矩阵能否变为A矩阵和B矩阵的异或。固定第一行不变,接下来检查剩下的每一行,每一行里的元素变或者不变都必须统一,否则NO。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1005;int a[maxn][maxn],r[maxn];int n;int main(){ int t; scanf("%d",&t); .

2021-03-06 15:33:15 144

原创 寒假算法训练6-E(招收k个博客博主,粉丝量尽可能多)

思路:数组从大到小排序,杨辉三角中获得Cmn的值。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1005;ll c[maxn][maxn],a[maxn];ll mod_=1e9+7;int n,k;int main(){ for(int i=1;i<=1000;i++) { c[i][i]=1,c[i][0]=1; ..

2021-03-06 12:00:19 69

原创 寒假算法训练6-D(清理手机内存问题,重要性有1和2)

Input55 75 3 2 1 42 1 1 2 11 3215 102 3 2 3 21 2 1 2 14 105 1 3 41 2 1 24 53 2 1 22 1 2 1Output2-1643思路:将两种重要性的app根据内存大小从大到小排序。然后枚举。枚举也很讲究,最好用vector记录下前i项和。#include <bits/stdc++.h>using namespace std;typedef long long ll;i.

2021-03-06 10:19:50 81

原创 寒假算法训练6-C(班级男女一起跳舞问题)

Input33 4 41 1 2 32 3 2 41 1 1112 2 41 1 2 21 2 1 2Output402思路:先确定一对关系,然后用总的情侣对数减去有这两个人任何一人所在的情侣对数,然后+1再除以2。在这里插入代码片

2021-03-05 22:27:14 198

原创 寒假算法训练3-I(已知最小公倍数,求两个因子,尽可能地小)

Input2Output1 2Input6Output2 3思路:最小公倍数已知,当两个数的最大公约数为1时,两个数的乘积才有可能会最小。#include <bits/stdc++.h>using namespace std;typedef long long ll;ll n;int main(){ scanf("%lld",&n); ll c1=0,c2=0; for(ll i=2;i*i<=n;i++) { .

2021-03-05 21:09:47 153

原创 寒假算法训练5-G(倍速播放电影)

Sample Input 119Sample Output 15Sample Input 213Sample Output 25Sample Input 3123456789098765Sample Output 385

2021-03-05 20:07:53 204

原创 寒假算法训练5-F(从x=1开始选择数组里若干个区间是否加上2的x-1次方,每次相加,x都会加一,直到数组变为严格非递减序列,问最少需要x为多少)

Input341 7 6 551 2 3 4 520 -4Output203思路:找出前i个数中最大的,后n-i个数中最小的。做差,求最小值加到大于等于最大值时x最小值。#include <bits/stdc++.h>using namespace std;typedef long long ll;int n;ll a[100005];int main(){ int t; scanf("%d",&t); while(t--).

2021-03-05 16:57:50 95

原创 寒假算法训练5-J(求树的深度,直接dfs)

Sample Input51 21 32 44 5Sample Output4思路:树的各个节点用vector存储即可。#include <bits/stdc++.h>using namespace std;int n;vector<int> g[1005];int ans=-1;void dfs(int x,int cnt){ if(g[x].empty()) {ans=max(ans,cnt);return;} for(int i=.

2021-03-05 11:56:37 56

原创 寒假算法训练5-E(电子科大卡消费问题)

Sample Input1505101 2 3 2 1 1 2 3 2 1500Sample Output-4532思路:01背包+贪心问题。用五块钱去买最贵的菜,减去5元后剩下的钱再尽可能多地买剩余的菜。

2021-03-05 11:27:06 136 1

原创 寒假算法训练4-I(ai+aj>bi+bj问题)

Input54 8 2 6 24 5 4 1 3Output7思路:将不等式转化,新增一个数组,对数组排序。关键是转换思维。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=200006;ll a[maxn],b[maxn],c[maxn];int main(){ int n; cin>>n; for(int i=1;i&l.

2021-03-05 10:42:26 959 1

原创 寒假算法训练5-D(找油矿,直接dfs就行)

#include <bits/stdc++.h>using namespace std;const int maxn=200;int n,m;int dis[8][2]={-1,1,-1,-1,1,-1,1,1,0,-1,0,1,1,0,-1,0};char s[maxn][maxn];bool vis[maxn][maxn];template<class T> T read(){ T f=1,k=0; char c=getchar(); while(c&l.

2021-03-05 10:42:07 87 1

原创 寒假算法训练5-H(按字典序输出相应数量数字,dfs)

Sample Input4 2Sample Output1 21 31 42 32 43 4思路:注意深搜的条件,数字未被访问过而且该数字小于ans数组内上一个数字。以及注意回溯。#include <bits/stdc++.h>using namespace std;int n,m;int a[50];bool vis[50];void dfs(int cnt){ if(cnt>m) { for(int i=1;i<m.

2021-03-05 10:40:56 103 1

原创 寒假算法训练5-C(拿决赛衣服路径最短路,dijkstra)

Sample Input2 11 2 33 31 2 52 3 53 1 20 0Sample Output32思路:直接Dijkstra。#include <bits/stdc++.h>using namespace std;const int maxn=105;int mp[maxn][maxn],dis[maxn];bool vis[maxn];vector<int> g[maxn];int n,m;struct node{ .

2021-03-05 10:40:22 90 1

原创 寒假算法训练4-H(去除k个数使所得数字尽可能小)

Sample Input29128456 21444 3Sample Output124561思路:k次遍历字符串,每次遍历时,只有较高位上数字比较低位数字大时,删除较高位,得到的数字会更小。如果是递增序列,则删除最后一位数字。#include <bits/stdc++.h>using namespace std;int main(){ int t,k; string s; cin>>t; while(t--) { .

2021-03-04 17:36:41 75 1

原创 寒假算法训练4-G(求最大质因子)

#include <bits/stdc++.h>using namespace std;int solve(int x){ int ans=-1; for(int i=2;i*i<=x;i++) { if(x%i==0) { while(x%i==0) { ans=max(ans,i); x/=i; .

2021-03-04 17:00:27 303 1

原创 寒假算法训练4-F(数有几个heavy metal)

InputheavymetalisheavymetalOutput3思路:遍历字符串,找出每个metal前面的heavy,进行累加。#include <bits/stdc++.h>using namespace std;typedef long long ll;int main(){ string s; cin>>s; ll cnt=0,ans=0; for(int i=0;i<s.size();i++) { .

2021-03-04 16:49:07 63 1

原创 寒假算法训练4-E(修路,好天气接连换天气)

Input35 1 18 10 101000000 1 1000000Output58499999500000思路:如果好天气的天数大于坏天气,那么好天气会一直占优势,所以直接输出n天就好。否则就先算出最少需要几天好天气,赋值k。如果k%g==0,sum=(k/g)*(b+g)-b,否则sum=(k/g)*(b+g)+k%g。#include <bits/stdc++.h>using namespace std;typedef long long ll;ll n,g.

2021-03-04 16:13:54 76 1

原创 寒假算法训练4-D(裸的完全背包问题)

Sample Input2 112 36 14Sample Output20#include <bits/stdc++.h>using namespace std;const int maxn=50005;int dp[maxn],v[maxn],c[maxn];int main(){ int n,b; scanf("%d%d",&n,&b); for(int i=1;i<=n;i++) scanf("%d%d",v+i,c+.

2021-03-04 15:46:06 107 1

原创 寒假算法训练4-C(裸的0-1背包问题)

Sample Input56 415192021Sample Output56#include <bits/stdc++.h>using namespace std;int h,n;int dp[45005],a[505];int main(){ scanf("%d%d",&h,&n); for(int i=1;i<=n;i++) scanf("%d",a+i); for(int i=1;i<=n;i++) .

2021-03-04 15:33:22 62 1

原创 寒假算法训练4-B(从四条边的每一个点进行dfs)

Sample Input15 5100 253 214 146 120123 0 0 0 054 0 33 47 0255 0 0 78 014 11 0 0 0Sample Output0 0 0 0 00 0 0 0 00 0 33 47 00 0 0 78 00 0 0 0 0#include <bits/stdc++.h>using namespace std;const int maxw=1500,maxh=1500;int dis[4][2]={1.

2021-03-04 13:57:52 41 1

原创 寒假算法训练3-G(拼接数字是否相等问题,关键是化简题目中所给条件)

Input31 114 2191 31415926Output101337思路:关键是化简题目中所给的条件。#include <bits/stdc++.h>using namespace std;typedef long long ll;ll a,b;template<class T> T read(){ T f=1,k=0; char c=getchar(); while(c<'0' || c>'9') {.

2021-03-04 11:42:07 79 1

原创 寒假算法训练3-H(选取蛋糕,实质求一个序列的最大子区间)

Input341 2 3 437 4 -135 -5 5OutputYESNONO思路:从第一个元素开始累加,用一个临时变量记录累加结果,记录的同时与上一次的累加值即ans进行比较,取较大值为ans。如果tmp的值为负数,该结果对答案的贡献就是负的,因此没必要继续累加下去,将tmp=0。也就是说,能不能为答案做出正面贡献就看tmp的正负。(注意子区间不能同时取左右两端点,分两种情况讨论即可)#include <bits/stdc++.h>using namespa..

2021-03-04 11:09:34 63 1

原创 寒假算法训练3-F(排队接水龙头问题,优先队列解决)

Sample Input 28 423 71 87 32 70 93 80 76Sample Output 2163思路:按顺序将每个同学的用水量压入优先队列,然后把最前面的(也就是最小的)元素弹出队列,加上一个紧跟着的后续的同学的用水量,二者之和再重新压入队列,表示该水龙头目前为止必须至少所用时长。最后输出队列的最后一个元素。#include <bits/stdc++.h>using namespace std;int n,m,k;priority_queue<int.

2021-03-04 10:19:32 128 1

原创 寒假算法训练3-E(易章彪找字符串)

Sample Input5 5yiZhanGBiaoaerghtyfjawertyizhangbiaoSample OutputYES思路:把string全部转换为小写,s.find(xx)和string::npos的使用。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=50;int n,m;char c[maxn][maxn];template&l.

2021-03-03 16:51:10 68 1

原创 寒假算法训练3-D(朋友聚会安排桌子数量,并查集模板题)

Output一行一个整数表示最少要准备的桌子数Sample Input输入样例1:5 41 22 33 44 5输入样例2:5 41 22 31 34 5输入样例3:5 21 23 4Sample Output输出样例1:1输出样例2:2输出样例3:3#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e6+20;int n,.

2021-03-03 16:39:34 343 2

原创 寒假算法训练3-C

2021-03-03 15:53:51 70 1

原创 寒假算法训练2-E

Sample Input3234Sample Output122

2021-03-03 15:51:50 83 1

原创 寒假算法训练3-B(已知n个未知数乘积为p,求这n个数的最大公因数)

Sample Input 44 972439611840Sample Output 4206思路:将p分解质因子,计算每一个质因子的个数,若同一个质因子有多个,则均分到n个数中,最后累乘这些质因子。#include <bits/stdc++.h>using namespace std;typedef long long ll;ll n,p;ll read(){ char c=getchar(); ll k=0,f=1; while(c<'0' .

2021-03-03 13:49:22 118

原创 寒假算法训练3-A(模拟题,瓶盖和瓶子换酒)

思路:购买一轮之后所得酒的数量累加进答案。然后计算这一轮的酒所包含的瓶盖和瓶子,得出这一轮所能兑换的酒有几瓶,做为下一轮的累加。以及计算剩余下不足4的瓶盖和不足3的瓶子,与下一轮兑换酒所获得的瓶盖和瓶子累加,以此类推。#include <bits/stdc++.h>using namespace std;int main(){ int t,n,ans; cin>>t; while(t--) { ans=0; .

2021-03-03 09:20:51 246

原创 寒假算法训练2-I(取糖果最值,且为k的整数倍)

Sample Input5 712345Sample Output14思路:难度中等偏上的dp题。关键是状态转移方程:dp[i][j]=max(dp[i-1][j],dp[i-1][(j-a[i]%k+k)%k]+a[i])i为选到第i堆糖果,j为选到第i堆糖果时以j为余数的此时的所取得的糖果的最大值。为保证加入第i堆糖果时余数为j,需要进行两次取余处理。初始化也很关键:选到第0堆糖果时,余数为非0的均为-inf,因为也不可能存在别的余数。#include <bits/s.

2021-03-03 08:48:52 197

原创 寒假算法训练2-J(经典的报数问题)

Sample Input3Sample Output2思路:已经移除的同学标记为0即可。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e6+20;int n,m,a[maxn];template<class T> T read(){ T f=1,k=0; char c=getchar(); while(c<'0' || c>'.

2021-03-02 21:45:23 106

原创 寒假算法训练2-J(马有几种走完棋盘上点的路径)

思路:典型的dfs问题。注意回溯以及x和y的方向问题!(输入几行几列时,cin可以省去相对于scanf要去除回车的步骤)#include <iostream>#include <string.h>using namespace std;int vis[100][100];int dis[8][2] = {1,2,2,1,-1,2,-2,1,-1,-2,-2,-1,1,-2,2,-1};int m,n,sx,sy,sum,ans;void dfs(int x,int .

2021-03-02 21:28:18 102 1

原创 寒假算法训练2-H(阿福洗劫商店问题)

Sample Input231 8 2410 7 6 14Sample Output824思路:动态规划。对于一家店铺,阿福的选择有洗劫和不洗劫。动态转移方程为dp[i]=max(dp[i-2]+a[i],dp[i-1])。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e5+20;int t,n,a[maxn],dp[maxn];//dp[i]表示盗取.

2021-03-02 21:12:04 118

原创 寒假算法训练2-G(李逍遥买药,典型bfs模板题)

Sample Input8 8.@##…##…#.##.#.##……#.###.#.#…#.…###.#.…#.*….#…###Sample Output10思路:典型bfs题。套用模板即可,注意x,y的方向问题!#include <iostream>#include <queue>using namespace std;const int MAXN=30;queue<pair<int,int> > q;int dis[4.

2021-03-02 20:54:14 131

原创 寒假算法训练2-B(开花题,map的简单应用)

思路:使用map。Sample Input4 45 1 7 32 3 4 1Sample Output1 3#include <map>#include <iostream>using namespace std;map<int,int> mp;int main(){ int n,m,t,a[100050]; cin>>n>>m; for(int i=0;i<n;i++) { .

2021-03-02 18:42:42 61

原创 寒假算法训练2-A(找两个数是否等于给出的数)

Sample Input42 5 1 46Sample Output1 5思路:将所有数字排序,从两个端点开始求和,直到找到符合的数字或者左端点大于等于右端点为止。#include <bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=100005;int read(){ int f=1,k=0; char c=getchar(); while(c<'.

2021-03-02 18:09:43 78

空空如也

空空如也

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

TA关注的人

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