自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 桂林 ccpc D. Assumption is All You Need

题解:因为只能前面大的和小的换,只要换的时候把大的数都往前放,例如 8 6 9 3 1 要把8换到1的位置,不能直接换,要先8,6交换;8 ,3交换;最后8,1交换;变成 6 3 9 1 8 ;这样6 3 1这3个比8小的数的相对位置就没变,对接下来的操作就没有影响;代码:#include<bits/stdc++.h>using namespace std;const int N = 3000;int a[N], b[N], pos[N] , maxx[3000];s...

2021-11-17 22:28:22 728

原创 2021-11-11

题意:有两个序列a,p,对序列a处理,保证只能交换a[p[i]]和a[p[i]+1],问能不能保证处理后为递减序列题解:写冒泡,然后加个判断;代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn = 110;int t, n, m, a[maxn], p[maxn];bool flag;int main() { int x; cin &

2021-11-11 20:35:50 130

原创 CF1583B Omkar and Heavenly Tree

题意:构造一棵树,使得若干个点对之间满足a_iai​和c_ici​之间不存在b_ibi​的限制。题解发现题目最多限制了n-1个点,那就以不受限制的那个点为根节点然后,创建一个发散的图代码#include<bits/stdc++.h>using namespace std;int t,n,m; int a,b,c,root; bool vis[100005];int main(){ cin>>t; while(t--){ mems...

2021-11-10 23:38:36 391

原创 CF591B Rebranding

题意:把字符串变换,每次调换一组;题解:模拟必超时,换个思路,每次都换,那我只要存每个字母最后变成什么就行;具体看代码代码:#include<cstdio>#include<iostream>#include<algorithm>using namespace std;int n,m;char f1[27],f2[27],a,b;string s;int main(){ cin>>n>>m; c

2021-11-09 21:46:25 110

原创 CF1294B Collecting Packages

题意:机器人从0开始走,只能走上或者右,问能不能走过所有点题解:结构体排序,然后模拟;代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 200005;struct node { int x, y;};node num[N];bool cmp(node a,node b){ if (a.x == b.x) { return a.y &lt

2021-11-04 22:01:24 78

原创 CF1214C Bad Sequence

题解:最多移动一个括号,判断能否使得整个括号序列合法题解:模拟,用栈的思想,具体看代码(大水题)代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N = 200005;int num[N];bool bmp(int a,int b){ return a > b;}int main(){ int n; cin >> n; strin

2021-11-03 19:08:15 70

原创 CF1472D Even-Odd Game

题意:在新年假期期间,Alice 和 Bob 使用数组玩以下游戏一种一种的n整数:玩家轮流,爱丽丝先行动。 玩家每回合选择任何元素并将其从数组中删除。 如果 Alice 选择偶数,那么她会将其添加到她的分数中。如果选择的值为奇数,则 Alice 的分数不会改变。 类似地,如果 Bob 选择奇数值,那么他会将其添加到他的分数中。如果选择的值为偶数,则 Bob 的分数不会改变。问最后谁分数高题解:具体不知道为什么,反正每回取最大的就过了(自己得不到也不能让对面得到);代码:...

2021-11-01 21:55:30 1830

原创 CF1315C Restoring Permutation

题意:给一个序列bi,让你根据这个序列构造一个新序列ai,使新序列满足 bi=min(a2i-1 - a2i)。bi 有 n 项,故 ai 有 2n 项,且题目要求 ai 中 1 到 2n 所有数字均要出现题解:数据不大,暴力模拟就完事代码:#include<bits/stdc++.h>using namespace std;int k[101], a[201], vis[201];int main(){ int t; cin >> t; while

2021-10-31 20:43:46 75

原创 codeforces 1582 C. Grandma Capa Knits a Scarf

题意:在字符串中选择一个字符删除任意个,最后形成回文串;题解:回文串的特点是两两对称,那就双指针找到最外侧的两个不相同的,一定选择其中的一个删除才有可能构成回文串;然后就都算,取最小;代码:#include <iostream>#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ int t; cin >> t; while (t--)

2021-10-28 20:19:19 164

原创 CodeForces 1574C Slay the Dragon

题意:现有n个英雄与一个龙,每个英雄有一个能力值,龙有一个攻击值xx与一个防御值y。现在你要派一个人去打龙,但是这个人的能力值必须大于等于龙的防御值;剩下的人守护城堡,他们的力量值和大于等于龙的攻击。一个金币可以提升一个人一点能力值,问最少需要多少金币。题解:两种情况,找刚好打的过龙的人去,或者就是找差一点打的过的去,判断一下哪个更优就好;(这题卡输入。。。)代码:#include <iostream>#include<bits/stdc++.h>u...

2021-10-26 17:00:05 248

原创 2021-10-25 codeforces 1594C. Make Them Equal(1200)

链接:Problem - 1594C - Codeforces题意:进行最少的次数的操作,使得给定字符串S变为目标字符串c,操作内容:选择1~n内的数x,将所有位置索引不能被x整除的置换为c;题解:不难看出,最多只要操作2次就行(n和n-1),麻烦的是怎么判断只需要一次的情况,可以运用埃式筛的想法,从1开始,查找每一个i对应的倍数,如果s[i]!=c就说明,这个i不能用;如果i的所有倍数位置的s[j]=c,那就证明这个i可以;循环1~n,如果每一个都不能用就输出2次操作;具体看代码代码:

2021-10-25 13:14:29 191

原创 谁是大佬(巴什博弈)

链接:P1203 - 谁是大佬题解:结合巴什博弈的基本思想进行讨论;这题是要最后取完的人输,那么我们先把m-1,那就变成了取完最后一个的赢;那就是如果HX要赢也就是说:每一次拿完都要给YY剩下(a+1)的倍数,具体操作就是这次YY取的数 加上 下一次HX取的数,和要为a+1的倍数;分3种情况:1.a==b直接套公式2.a>b再分如果m%(a+1)==0;那HX先手取1个,然后YY取y个,接下来HX再取(a+1-y-1)即a-y个,剩下一定是a+...

2021-10-20 19:45:53 329

原创 POJ 3126 Prime Path

链接:3126-- Shuffle'm Up题解:bfs,每次把合适的数放进去;代码:#include<iostream>#include<set>#include<map>#include<queue>#include<cstring>#include<cmath>#include<limits.h>#include<string>#include<stdio.h>#

2021-09-09 23:05:37 48

原创 POJ 1426 Find The Multiple

链接:http://poj.org/problem?id=1426题解:BFS,每次队列里的数*10+(0或1);代码:#include<iostream>#include<set>#include<map>#include<queue>#include<cstring>#include<cmath>#include<limits.h>#include<cstring>#includ

2021-09-08 14:17:05 96

原创 POJ 3279 Fliptile

链接:http://poj.org/problem?id=3279题解:翻转问题,通过dfs确定第一行的情况,然后往下拓展;小技巧:用异或来控制“开关”;代码:#include<iostream>#include<set>#include<map>#include<queue>#include<cstring>#include<cmath>#include<limits.h>using nam

2021-09-08 13:40:03 62

原创 POJ 3278 Catch That Cow

链接:http://poj.org/problem?id=3278题解:用bfs做;代码:#include<iostream>#include<set>#include<map>#include<queue>#include<cstring>using namespace std;typedef long long ll;bool b[10000000];struct node{ int x; .

2021-09-08 09:04:05 43

原创 POJ 2251 Dungeon Master

链接:http://poj.org/problem?id=2251题解:BFS的板子题,结合了三维数组;代码:#include<iostream>#include<set>#include<map>#include<queue>#include<cstring>using namespace std;typedef long long ll;int dx[6] = { 1,-1,0,0,0,0 };int dy[6

2021-09-07 17:36:11 61

原创 Codeforces 1560 F1. Erase and Extend (Easy Version)(1900,暴力+二分)

链接:https://codeforces.ml/problemset/problem/1560/F1题意:对于N和K,你需要找一个最小的X满足X>=N,且X当中出现的不同数字数量为k题解:因为k最大为2,预处理dfs+暴力枚举把所有情况罗列出来,然后用二分查找;当n=10^9要特判代码:#include<bits/stdc++.h>#include<unordered_map>using namespace std;typedef long long

2021-09-03 15:28:24 102

原创 Codeforces 1551 D1. Domino (easy version)(1700,数论)

链接:https://codeforces.com/problemset/problem/1551/D1题意:你需要在N*M的网格里放下每个长为1,宽为2的多米诺骨牌,要求K张横着摆,其余竖着;题解:可以发现每2张牌就可以组成2*2的正方形如果n和m都是偶数,只要保证k也是偶数,就一定可以放下;条件:k%2==0如果n是奇数,m是偶数,只要把其中一层先放满就跟第一种情况一样,放满一层至少需要m/2张,且(k-m/2)也要是偶数;条件:(k - m/2) % 2 == 0 &&

2021-08-31 23:14:18 145

原创 Codeforces 1556 D. Take a Guess(1800,交互题)

链接:https://codeforces.com/contest/1556/problem/D题意:有一个序列,你需要机器猜,可以询问不超过2 ∗ n个问题,两个下标为i和j的项按位与的结果是什么( i ≠ j )​两个下标为i和j的项按位或( i ≠ j )的结果是什么?你需要找到第k 小数;题解:只要知道a + b = a & b + a ∣ b ,然后就可以经过n-1次的询问知道a1+a2,a2+a3,a3+a4.....an-1+an;再只要知道随便一对结果,就可以求出所.

2021-08-30 22:50:30 156

原创 Codeforces 1556 C. Compressed Bracket Sequence(1800)

链接:https://codeforces.com/contest/1556/problem/C题意:原来的序列是一个括号序列,此时给出它的压缩序列,“ ( ( ( ( ) ( ( ) ) ) ( ” 对应的压缩序列是[4,1,2,3,1],问在给定压缩序列的前提下,求出合法子序列的个数。题解:PS:合理括号序列一定有 ‘(’和‘)’的数量相同且任意时候‘(’的数量一定比‘)’多;因为输入是成对出现的所以我们可以拆开一对一对看,对于单独的每一对,合法的数量就是取决于两值较小的那个,再

2021-08-30 21:14:50 392 1

原创 codeforces 1560D. Make a Power of Two(1300)

题解:算出2的1~60次方,对每个进行匹配操作找到最小的;代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;string s[100];int f(string n, string s){ int ans = 0; int si = 0; for (int i = 0; i < n.size(); i++) { if (n[i] == s[si]) { si++;

2021-08-29 00:49:56 81

原创 codeforces 1560E. Polycarp and String Transformation

题解:从后往前找,每个字母第一次出现就记录下来,这样找出来的就是T;接下来因为第一次删掉的字母只会出现1次,第二次删掉的只会出现2次,以此类推;找出原本字符串s的长度,最后带回去验证;代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ int n; cin >> n; while (n--) { string s; cin >&gt

2021-08-29 00:45:49 101

原创 codeforces 1561 C. Deep Down Below(1300)

链接:https://codeforces.ml/problemset/problem/1561/C题意:自己上机翻;题解:找出每个洞穴通关所需的最小战斗力和通关后的战斗力,组成一对,对所有这样的对子排序,然后能连起来,连不起来加战斗力,具体看代码;代码#include<bits/stdc++.h>using namespace std;typedef long long ll;bool bmp(pair<ll, ll>a, pair<ll, ll&

2021-08-29 00:38:19 220

原创 codeforces 1538 C. Number of Pairs(1300)

链接:https://codeforces.ml/problemset/problem/1538/C题意:找到满足这个条件的数有几对:l≤ai+aj≤r;题解:排序后,用lower_bound和upper_bound找到边界,然后中间的就都是;具体看代码;代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;int num[200005];int main(){ int t; c

2021-08-24 20:10:58 186

原创 codeforces 1506 D. Epic Transformation(1400)

链接:https://codeforces.ml/problemset/problem/1506/D题意:找到两个不同的数就可以消掉,最少剩几个;题解:水题,具体看代码;大概就是优先把最多的数字消掉;代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;int num[100005];int main(){ int t; cin >> t; while (t--) {

2021-08-23 21:04:27 114

原创 codeforces 958C1. Encryption (easy)(1200)

链接:https://codeforces.ml/problemset/problem/958/C1题意:把数组在、分为2个部分,分别对p取模,求最大的和;题解:前缀和,开longlong;代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;int num[100005];int main(){ int n, p; cin >> n >> p; for (

2021-08-23 20:40:03 138

原创 codeforces 1097B. Petr and a Combination Lock(1200)

链接:https://codeforces.ml/problemset/problem/1097/B题意:判断能否用所给的数据凑出360的倍数或者0;题解:n才15,暴力dfs走起;代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;int num[100005] = { 0 };int ans = 0;void dfs(int step, int n, int sum){ /

2021-08-20 22:00:21 363

原创 题目:codeforces 1227B. Box(1200)

链接:https://codeforces.ml/problemset/problem/1227/B题意:输入q1~qn ,构造满足题意的p序列:q1=p1 q2=max(p1,p2) q3=max(p1,p2,p3) ... qn=max(p1,p2,…,pn)题解:具体看代码,很好悟的;代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;int num[100005] =

2021-08-19 23:40:49 201

原创 题目:codeforces 1076A Minimizing the String(1200)

链接:http://codeforces.com/contest/1076/problem/A题意:删除一个字母,使得字符串的字典序最小;题解:标记后面比前面小的字母,然后删除,没找到就删最后一个;具体看代码;代码#include<bits/stdc++.h>using namespace std;typedef long long ll;int sum[100005] = { 0 };int main(){ int n; cin >> n;

2021-08-19 01:00:33 72

原创 题目:codeforces 554 B. Ohana Cleans Up(1200)

链接:https://codeforces.ml/problemset/problem/554/B题意:Ohana Matsumae 试图打扫一个房间,房间被分成n×n方格。每个方块最初要么是干净的,要么是脏的。Ohana 可以用她的扫帚扫过网格的列。她的扫帚很奇怪:如果她扫过一个干净的方块,它就会变脏,如果她扫过一个肮脏的方块,它就会变干净。她想清扫房间的一些列,以最大限度地增加完全干净的行数。题解:如果有2行不一样的字符串,满足其中一个另一个一定不是干净的,所以这题就是要找相同的字符..

2021-08-17 22:19:40 106

原创 codeforces 1437 B. Reverse Binary Strings (1200,贪心)

链接:https://codeforces.ml/problemset/problem/1437/B题意:翻转字符串的任意子串使其变为0和1交错的序列,输出最小的操作次数;题解:要形成01的交错序列,说明碰见连续的1或者0就要反转,因为反转子串只会影响头和尾,所以最理想的情况就是反转的时候同时处理00和11;例如:所以只要分别找到有多少个11和00,然后输出最大值即可;代码:#include<bits/stdc++.h>using namespace st

2021-08-16 20:55:39 118

原创 题目:8.14(补)+8.15 codeforces 1185 Exam in BerSU (1200+1700,贪心)

链接:https://codeforces.ml/problemset/problem/1185/C1 https://codeforces.ml/problemset/problem/1185/C2题意:最多花费T的时间来完成整场考试,现有n个人来参加,每个人都需要一定时间来考试;输出每个人最少需要干掉(bushi)前面几个人才能保证自己完成考试;(意会即可)题解:因为每个人考试花费的时间不超过100,就用数组存起来,如果轮到自己时间超标了就从100开始遍历到0,时间复杂...

2021-08-15 21:20:49 46

原创 题目:codeforces 1510 K. King‘s Task(1200,dfs)

链接:https://codeforces.ml/problemset/problem/1510/K题意:用两种操作对数组排序;题解:dfs罗列所有情况;采用map+vector标记该状态是否出现过;代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;int ans = INT_MAX;map<vector<int>, int>mp;void dfs(vector

2021-08-13 20:59:18 126

原创 题目:codeforces 1545 A. AquaMoon and Strange Sort(思维)

链接:https://codeforces.com/problemset/problem/1545/A题意:对数组排序使其变为非递减序列且每个数每变换一次位置后,自身属性会变,要保证排完的每个数的属性跟原来一样;题解:因为要保证自身属性不变,那每个数交换的次数一定是偶数次;再看排序完满足题目要求的序列可能不止一种,但递增序列一定是满足条件的;那现在思路就是先排序成递增序列,然后比较奇数位或者偶数位出现的数字是否跟原序列相同;代码:#include<bits/stdc++.

2021-08-12 21:04:40 116

原创 题目:8.10(补)+8.11 codeforces 1497 k-LCM (1200+1600,构造+思维)

链接:https://codeforces.ml/problemset/problem/1497/C2 https://codeforces.ml/problemset/problem/1497/C1题意:找出K个和为N的数且最小公倍数不超过N/2;题解:EASY:一开始直接莽C2,啥思路都没有,做完C1茅塞顿开;C1的题目里面K恒定为3,很容易就想到如果是奇数可以分成1,(n-1)/2,(n-1)/2 这种组合;偶数的话,如果可以四等分,那就划分成1:1:2...

2021-08-11 20:26:39 66

原创 codeforces 1497 B. M-arrays(1200)

链接:https://codeforces.com/problemset/problem/1497/B题意:随意调换顺序,判断该数组最少能分成几组,满足相邻的数都能被m整除或者该组只有一个数;题解:2个数相加能被整除就是要满足(x%m==a,b=m-a)所以只要判断数组内每个余数之间的关系;代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;int a[100005] = { 0

2021-08-09 21:01:28 80

原创 2021-08-08 codeforces 1422 B. Nice Matrix(1300,贪)

链接:https://codeforces.com/problemset/problem/1422/B题意:输入一个矩阵,每次操作可以对其中的进行+1或-1,用最少的次数让其变为回文矩阵;题解:对每一个,只要保证对称位置相同,那么这个矩阵就是回文;所以,只要用最少的次数使得3个位置的数相同(中位数定理);具体代码;代码:`#include<bits/stdc++.h>using namespace std;typedef long long ll;int a[105][105]

2021-08-08 20:59:01 388

原创 codeforces 1418 B. Negative Prefixes(1300,贪)

链接:https://codeforces.com/problemset/problem/1418/B题意:给定数组a,有些数锁定,有些没锁定,没锁定的可以任意调换顺序;定义K是该数组满足前缀和P[j]<0的最大的数,现在要求变换数组使K最小;题解:K要最小,就是前面的前缀和要尽可能大,那就把大的数往前面放;代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;int ma

2021-08-07 22:04:19 99

原创 codeforces 999 C. Alphabetic Removals(1200)

链接:https://codeforces.ml/problemset/problem/999/C题意:对字符串按顺序删除给定数量的字母题解:模拟;代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;int num[26] = { 0 };int main(){ int n, k; cin >> n >> k; string s; cin >&gt

2021-08-06 22:32:25 166

空空如也

空空如也

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

TA关注的人

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