
TKK
TKK训练
Qian丶Xi
亻尔女子
展开
-
ICPC沈阳46-B-Bitwise Exclusive-OR Sequence
链接:https://ac.nowcoder.com/acm/contest/24346/B题意:n个点(n个数字),m个关系每条关系包含u,v,w,表示au异或(XOR)av等于w要求构建一个符合关系的和最小数组,没有符合的输出-1PS:数组非负解:第一次写ICPC的补题题解,蒟蒻人的错误请多指教比赛的时候没写出来,以为是要让出入度最大的点承担异或中更大的部分(即对所有和这个点所有w去&,然后给这个点)然后被出入度相同的点的优先顺序卡住了后来请教了一下我滴罗神罗神:要拆成二原创 2021-11-23 12:06:55 · 774 阅读 · 0 评论 -
gym102823-problem-H - Hamming Distance
链接:https://codeforces.ml/gym/102823/problem/H题意:HM(a,b)表示字符串a和b的汉明距离,定义两个字符串不同点的数量给两个字符串a,b,求构建一个满足HM(a,c)=HM(b,c)的最小字典序C解:2018CCPC的桂林H题前段时间摸了一下虚拟赛,确确实实是蒟蒻了当时是和思路找a和b中字符’a’的数量,然后根据数量差,前面全填’a’,从后面开始修改对应数量差的字符(然后卡死了,处理没写出来)这边补一下这题=-=如果ai和bi是相同的话,那么原创 2021-11-15 20:14:52 · 245 阅读 · 0 评论 -
1559D1 - Mocha and Diana (Easy Version)
链接:https://codeforces.com/problemset/problem/1559/D1题意:两个图,本身不成循环要求在两个图中同时加边(在同一个位置加边)求不产生循环的最大加边解:建图和并查集,点数量1000,直接双循环查找能否加边实际代码:#include<iostream>#include<bits/stdc++.h>#define csh(a) memset(a,0,sizeof(a))using namespace std;type原创 2021-11-12 13:33:15 · 190 阅读 · 0 评论 -
839C - Journey
链接:https://codeforces.com/problemset/problem/839/C题意:一棵树,一只动物,他到每个子节点的概率相同求从树根出发的路径长度期望(每个边长度1)解:根节点概率a,有n个子节点,那么子节点概率a/n*期望=所有叶子节点的(权重[路径长度]概率)实际代码:#include<iostream>#include<bits/stdc++.h>#define csh(a) memset(a,0,sizeof(a)) usin原创 2021-11-10 13:14:24 · 347 阅读 · 0 评论 -
545C - Woodcutters
链接:https://codeforces.com/problemset/problem/545/C题意:一个数轴上有n棵树,每棵树都有一个高度h,可以向右砍倒(占用[x,x+h]),或者向左砍倒(占用[x-h,x]),或者不砍要求没有重叠点情况下,能砍的最大数量解:能向左砍就不会影响下一棵树的距离向右砍会有影响,但是只会影响下一棵树的左砍,二选一,所以直接贪一手,能砍就砍DP写起来麻烦,思路也差不多,放了实际代码:#include<iostream>#include<原创 2021-11-10 13:08:59 · 598 阅读 · 0 评论 -
1355B - Young Explorers
链接:https://codeforces.com/problemset/problem/1355/B题意:给定一个团队,每个人有个“合作值”,数值为a的人需要加入人数大于等于a团队,求能组成的最大团队数量可以有人不入团解:记录,排序,然后记录人数,当人数大于这个数值的时候,组成团队数量加一,然后清空人数实际代码:#include<iostream>#include<bits/stdc++.h>#define csh(a) memset(a,0,sizeof(a)原创 2021-11-09 00:02:13 · 170 阅读 · 0 评论 -
1195C- Basketball Exercise
链接:https://codeforces.com/problemset/problem/1195/C题意:两个数列a和b,每次可以在任意一个数字中取一个数字(可以不取)求和值最大解:DP冲冲冲!dp二维数组dp【 i 】【 j 】i表示第 i 天 j 选择的最优选择j=0不选,j=1选a数列,j=2选b数列DP转移公式dp[i] [0]=max(dp[i-1] [0],max(dp[i-1] [1],dp[i-1] [2]));dp[i] [1]=max(dp[i-1] [0]+sz原创 2021-11-08 23:55:59 · 204 阅读 · 0 评论 -
1607E - Robot on the Board 1
#include#include<bits/stdc++.h>using namespace std;int main(){int T;cin>>T;for(int f=1;f<=T;f++){int n,m;cin>>n>>m;string s;cin>>s;int monx=0,mony=0;int maxx=0,minx=0,maxy=0,miny=0;int lg=s.length();int ansx原创 2021-11-07 21:20:33 · 261 阅读 · 0 评论 -
1607D - Blue-Red Permutation
链接:https://codeforces.com/problemset/problem/1607/D题意:一个数列a,ai分别被标记成红色和蓝色(有可能整个a只出现一种颜色)红色可以让这个数变成大于他本身的数字蓝色可以让这个数变成小于他本身的数字要求判断是否能得到1-n一共n个数字(没有重复,不要求顺序)解:蓝色可以变小,让他负责小数的部分,红色可以变大,负责大数部分(很小的蓝色只能变得更小,很大的蓝色可以由小的红色变大顶替)(很大的红色只能变得更大,很小的红色可以由大的蓝色变小顶替)原创 2021-11-07 21:10:39 · 290 阅读 · 0 评论 -
1603A - Di-visible Confusion
链接:https://codeforces.com/problemset/problem/1603/A题意:一个数列a,当ai不能被i+1整除时,ai可以被消除,后面数字依次补上,判断能否全部删除解:根据lcm(最小公倍数),不能被2~26(第一位1,1+1=2)整除的数字超过1E9那么对个数字做判断的时候取1到min(26,i+1),因为要全部删除,那么前面26位的也要删除,所以后面的能被26内数字删除的迟早会排到前面,根据顺序和需求删除,只要有一个不能删除,那就是不行实际代码:#incl原创 2021-11-04 21:17:52 · 271 阅读 · 0 评论 -
1603B - Moderate Modular Mode
链接:https://codeforces.com/problemset/problem/1603/B题意:给你x和y,找一个n,满足n%x==y%n解:math题好难QWQ首先x=y,肯定输出x就行然后x>y,显而易见(x+y)%xyy%(x+y)最后x<y,可得当n%x的值以及被确定在0到x-1之间当n=x的时候,n%x==0,y%n=y%x的值,等于y减去小于等于y最大的x的倍数,即y-xx这时候让n=x+j,会发现n%x==j,但是y%n和y%x的变量跟xx/x的值有原创 2021-11-04 20:54:59 · 385 阅读 · 0 评论 -
1336A - Linova and Kingdom
链接:https://codeforces.com/problemset/problem/1336/A题意:有一个n节点树,根为1,现在要设置k个工业城市,剩下n-k个旅游城市,让每个工业城市前往根,每经过一个旅游城市值加一,求最大值多少解:思考一下结果就能知道,肯定先选离根节点最远的点,然后把叶子选完了怎么办呢,再思考下。。。。。。能发现选了一个非叶子结点的点前,他的叶节点一定是被选择了(为什么捏)然后选的这个点会让他所有的叶节点路径上多一个工业城市,所以他叶方向有几个点就要减去多少一个原创 2021-11-03 19:36:40 · 136 阅读 · 0 评论 -
550C - Divisibility by Eight
链接:https://codeforces.com/problemset/problem/550/C题意:长度100以内的字符串,找能被8整除的子序列解:1000就能被8整除,所以只要找3位数字暴力n^3实际代码:#include<iostream>#include<bits/stdc++.h>#define csh(a) memset(a,0,sizeof(a))using namespace std;typedef long long int ll;co原创 2021-11-03 19:06:22 · 272 阅读 · 0 评论 -
1398C - Good Subarrays
链接:https://codeforces.com/problemset/problem/1398/C题意:给定数列a,求子串和等于子串长度的子串数目解:基本思路当然是前缀和,只要每次去前缀和前,对当前这个数字减一,就能变成区间和=0的问题,因为n长子串一共减少n那么,前缀和0的位置,单独成一个答案,配合前面前缀和0的也能成一组答案前缀和k的,和前面前缀和k的成一组答案实际代码:#include<iostream>#include<cstring>#includ原创 2021-11-01 20:33:24 · 201 阅读 · 0 评论 -
1372B - Omkar and Last Class of Math
链接:https://codeforces.com/problemset/problem/1372/B题意:给一个数n,让a+b=n,且a,b最大公倍数(LCM(a,b))最小解:对于一个n,设他的最小非1因子Ymin,和他的最大非1因子Ymax=n/Ymin所有n由Ymin*Ymax组成这边要在a+b=n的情况下LCM最小,那么n-a/a就要是整数(成倍)且越小越好那么因为n由Ymin个Ymax组成,所以1个Ymax和Ymin-1个Ymax最合适,倍数为Ymin-1倍偶数时推得最小非1因原创 2021-11-01 19:58:20 · 201 阅读 · 0 评论 -
1334A - A. Level Statistics
链接:https://codeforces.com/problemset/problem/1334/A题意:游戏设计者会不断更新两个记录,一个数游玩次数,一个是通关次数,通关以后再玩也会添加游玩次数给n条记录(随时间更新)判断是否合理(是否有错误)解:四个错误游玩次数少于通关次数游玩次数减少通关次数减少通关增量大于游玩增量模拟,冲!实际代码:#include<iostream>using namespace std;int main(){ int T; c原创 2021-10-31 18:51:45 · 2292 阅读 · 0 评论 -
514A - Chewbaсca and Number
链接:https://codeforces.com/problemset/problem/514/A题意:没有前导零的原数字,可以对每位的数字进行t变成9-t的操作,求能变成的没有前导零的最小数解:把大于5的变成9-t,第一位是9不能变水!实际代码:#include<iostream>#include<cstring>using namespace std;int main(){ string s; cin>>s; int lg=s.leng原创 2021-10-31 17:50:16 · 196 阅读 · 0 评论 -
698A - Vacations
链接:https://codeforces.com/problemset/problem/698/A题意:有个人,他得生活枯燥无趣,只有休息,健身和比赛数组a表示每天的情况,ai有四种可能:ai=0,第i天不能健身不能比赛ai=1,第i天不能比赛ai=2,第i天不能健身ai=3,干啥都行这个人不能连续两天健身或者比赛,求最小休息时间解:dp题dp数组dp[i] [j]表示第i天第j中情况dp[i] [0]每天加一(休息情况)dp[i] [1]这一天健身,在前一天的休息和比赛中原创 2021-10-29 21:46:54 · 148 阅读 · 0 评论 -
1365B - Trouble Sort
链接:https://codeforces.com/problemset/problem/1365/B题意:给定序列a和b,ai和bi视为一个整体,ai为1到1E5整数,bi为0或1只能进行将b=0和b=1的数字交换,求能否让序列a有序解:如果只有0,或者只有1,那么需要原来的a序列本身有序,直接判断如果有0有1,直接是yes因为假设A,B的b为0,还有一个C的b为1ACB(010)->CAB(100)->BAC(001)->BCA(010)只要有一个0,所有的1就能做原创 2021-10-29 21:28:26 · 151 阅读 · 0 评论 -
433B - Kuriyama Mirai‘s Stones
链接:https://codeforces.com/problemset/problem/433/B题意:给定数列n,给出两种查询查询1,给定L,R,查询原数列L到R的数字和查询2,给定L,R,查询从大到小排序的数列的L到R的数字和解:排序+前缀和vans!实际代码:#include<iostream>#include<algorithm>using namespace std;typedef long long int ll;const int Si原创 2021-10-29 08:50:17 · 258 阅读 · 0 评论 -
1339B - Sorted Adjacent Differences
链接:https://codeforces.com/problemset/problem/1339/B题意:给定长度n的数列,将它排序成相邻两数之间差值的绝对值为非减序列解:直接输出的话,要从原数列中间开始取先从后面开始填充一下答案的话更容易,不过要多n次循环,试了一下没超时,就按这种来解法是从后面开始,填充一个数列最大数,再填一个最小数,然后把它们去除(双指针),然后再填充一个最大数,一个最小数,然后正序输出答案串即可,因为原数列最大数和最小数的差值绝对值最大,越靠内越小,所以正序直接输出答原创 2021-10-29 08:42:50 · 163 阅读 · 0 评论 -
479C - Exams
链接:https://codeforces.com/problemset/problem/479/C题意:(难读题),一共n场考试,正常情况下在第Ai天进行,但是可以提早到第Bi天进行,一天能够进行无数场考试,求结束考试的最早时间要求,考试顺序不能乱解:读题大困难,因为考试顺序不能乱,所以要按照原时间排序,同时要进行Bi跟着排序,所以用结构体排序(手贱写了个类)对于从小到大的Ai,如果现在(最后一次考试结束时间)已经超过了提前考试的时间,那就只能按正常时间靠,如果能提前考,那就按提前时间实际原创 2021-10-27 20:26:55 · 169 阅读 · 0 评论 -
1294C - Product of Three Numbers
链接:https://codeforces.com/problemset/problem/1294/C题意:对于一个数字n,找到三个不相同且大于等于2的a,b,c,使a×b×c=n解:把两个乘数先合一,变成T×F=n为了复杂度,现在2-sqrt(n)找因数T,然后对每一个T,得到对应的F,判断F是否有因数,然后比较三个数字看是否重复,输出结果PS:我只找了F的第一个因数,因为假设n=64,T=2,F=32,F的第一个因数2,重复了,但是不继续找,找下一个T=4,F=16,F的第一个因数2;2原创 2021-10-27 19:52:37 · 251 阅读 · 0 评论 -
1328B - K-th Beautiful String
链接:https://codeforces.com/problemset/problem/1328/B题意:一个字符串由n-2个a,和2个b组成现有排序规则:假设n=5aaabbaababaabbaabaabababaabbaabaaabbaabababaabbaaa求第k个是哪一个解:研究靠左的b,这个b右边有几个位置,就能有几种组合所以根据左边b,得出,右边b的位置数量是首项a1=1,公差d=1的等差数组然后先判断左边b的位置,再用剩下得值来求右边b位置实际原创 2021-10-26 22:31:20 · 184 阅读 · 0 评论 -
1385C - Make It Good
链接:https://codeforces.com/problemset/problem/1385/C题意:删除最短前缀,使剩下的数字,能够在从头尾按任意顺序取,组成非减序列解:一个头尾取,一个任意顺序,两个重点只能删除前缀,所有从后往前找一个先递增再递减的最大串就行因为头尾取非减序列,所以越靠近中间越大不考虑前缀长度,因为从后往前如果不是一个先增后减(可以0增或者0减)(只有一组增一组减),是不满足条件的实际代码:#include<iostream>#include<原创 2021-10-26 22:24:53 · 146 阅读 · 0 评论 -
550A - Two Substrings
链接:https://codeforces.com/problemset/problem/550/A题意:水题,字符串里找没有重合的AB和BA解:暴力搜两次实际代码:#include<iostream>#include<algorithm>#include<cmath>#include<algorithm>using namespace std;typedef long long int ll;int main(){ string原创 2021-10-25 13:39:55 · 223 阅读 · 0 评论 -
1343C - Alternating Subsequence
链接:https://codeforces.com/problemset/problem/1343/C题意:子序列:原序列删减不改变顺序要求找出最大长度,正负交叉,【正负正负…】,【负正负正…】求最大长度的子序列的和的最大值解:思维题和阅读题(读题重点)题目要求的最大长度是固定条件,所有能取都要取只要在每个正负块里面取最大值即可我用integer标记正负,符号不变时记录最大值,符号改变时把最大值加入答案同时更新记录,数组最后加了一个和原最后一位相反的数来弹出最后一个块的最大值实际代码:原创 2021-10-25 13:23:37 · 207 阅读 · 0 评论 -
476B - Dreamoon and WiFi
链接:https://codeforces.com/problemset/problem/476/B题意:给一个由 ’ + ’ 和 ’ - ’ 组成的串,为串s,+为向前1,-为向后1给一个由 ’ + ’ , ’ - ’ 和 ’ ?’ 组成的串,为串t,+为向前1,-为向后1,?为50%+,50%为-求执行t串后,位置结果和s串相同的概率解:dfs一下,暴力一下总数就行实际代码:#include<iostream>#include<cstdio> #includ原创 2021-09-04 22:21:07 · 267 阅读 · 0 评论 -
1358C - Celex Update
链接:https://codeforces.com/problemset/problem/1358/C题意:一个特殊无限矩阵(看题),求从( x1 , y1 )到( x2 , y2 )有几种不同的路径和解:标签就一个math只能是半猜半蒙~~(bushi)~~首先,每一步的选择上只有右和下选择下的话对于选择右路径和小1观察( 1 , 1 )到( 3 , 3 )1 2 43 5 86 9 13有以下几条路径1+2+4+8+13=281+2+5+8+13=291+2+5+9原创 2021-09-02 20:07:31 · 400 阅读 · 0 评论 -
1360D - Buying Shovels
链接:https://codeforces.com/problemset/problem/1360/D题意:要买n个铲子其中有k种包装,第i种(1<=i<=k)一包k个,只能选择一种求需要刚好买n个铲子,在k中包装中,购买的最小包装数解:思维刚好意味着要整除n1-n枚举TLE但是因子都是成双的(除了平方)所以枚举到 sqrt ( n )实际代码:#include<iostream>#include<cmath>using namespace原创 2021-09-01 21:39:27 · 154 阅读 · 0 评论 -
478B - Random Teams
链接:https://codeforces.com/problemset/problem/478/B题意:一共n个人,分成m队,同一个队伍里的两两交友求最大朋友对数和最小朋友对数(所有队伍朋友对数之和)解:彻头彻尾思维+计算首先看交友方面是两两交友,所以K人队伍是C2K=( k * ( k-1 ) ) / 2所以K增长,C2K增加很大所以最大朋友对数,就是m-1队每队一个人,其他全去一对MAX=(n-m+1)*(n-m)/2;最小的话就平均分配每队分配b=n/m个,多出a=n%m放到原创 2021-08-31 22:08:26 · 288 阅读 · 0 评论 -
279B - Books
链接:https://codeforces.com/problemset/problem/279/B题意:n本书,第i本书需要消耗ai分钟阅读,可以选任意一本开始,然后只能按顺序阅读求t分钟能读书的最大数量解:暴力,双指针,用前缀和处理了一哈实际代码:#include<iostream>#include<algorithm>using namespace std;typedef long long int ll;const int N=1E5+5;ll sz原创 2021-08-30 20:29:31 · 313 阅读 · 0 评论 -
1328C - Ternary XOR
链接:https://codeforces.com/problemset/problem/1328/C题意:三元数,是由0,1,2组成定义a⊙b 为第i位数字(ai+bi)%3=xi给定x,要求让max(a,b)最小;解:因为要求让ab最小所以ai,bi和为xi可以忽略取余在没找到1之前,0,2平均分找到以后,1给a,后面的所有都给b;实际代码:#include<iostream>#include<cstring>#define csh(a) memset(原创 2021-08-29 20:43:19 · 192 阅读 · 0 评论 -
459B - Pashmak and Flowers
链接:https://codeforces.com/problemset/problem/459/B题意:在数组中找出差值最大,看看有多少对能组成这个值解:找出最大值最小值,记录数量(遍历一遍即可)最大值=最小值时,说明全数组只有一个数,结果为C2 n(n为数组大小)=n×(n-1)/2实际代码:#include<iostream>#include<cstring>#include<cmath>#include<algorithm>#i原创 2021-08-28 23:29:44 · 215 阅读 · 0 评论 -
1561C - Deep Down Below
链接:https://codeforces.com/problemset/problem/1561/C题意:英雄打怪兽,英雄攻击力大于怪兽防御力时才能击杀,每杀一只怪兽攻击力上升一点给你n个数组,第i个数组ki个数字,表示怪兽的防御力可以选择任意一个数组开始,但是在数组中得按顺序打怪求英雄杀光怪兽的最低起始攻击力解:首先对每个数列求英雄通过的最低起始攻击力,和通关加成然后排序最低起始攻击力,从小到大,分开记录加成和攻击力,无法通过时提升攻击力到该数列最低起始攻击力通过后提升加成记录实原创 2021-08-27 23:11:13 · 329 阅读 · 0 评论 -
1B - Spreadsheets
链接:https://codeforces.com/problemset/problem/1/B题意:两种方式表达表格:一种是R X C Y ,例如R 23 C 55是第55列第23行中单元格另一种是用字母+数字表示数字部分表示行字母部分 A表示1,Z表示26,AA表示27,AZ表示52,以此类推例如BC23 表示第55列第23行中单元格给你其中一种,转化成另一种输入2R23C55BC23输出量BC23R23C55解:10s的超长时间只需要想好怎么处理就行首先判断原创 2021-08-26 22:28:05 · 213 阅读 · 0 评论 -
1561D1 - Up the Strip (simplified version)
链接:https://codeforces.com/problemset/problem/1561/D1题意:一开始为n,把n变成1,可以做两种操作(无数次)对于位置x的数字:1、减【1,x-1】任意一个数2、除与【2,x】任意一个数(向下取整)求有多少种变法输入3 998244353输出量5输入5 998244353输出量25输入42 998244353输出量793019428解:这一波属于是1900大佬提点了,一开始就想到了DP,但是除法这部分完全不原创 2021-08-25 21:38:34 · 233 阅读 · 1 评论 -
1352B - Same Parity Summands
链接:https://codeforces.com/problemset/problem/1352/B题意:求n能不能由k个奇数或者k个偶数组成输入810 3100 48 797 28 83 105 31000000000 9输出量YES4 2 4YES55 5 5 35NONOYES1 1 1 1 1 1 1 1NOYES3 1 1YES111111110 111111110 111111110 111111110 111111110 1111111原创 2021-08-23 21:31:57 · 216 阅读 · 0 评论 -
474B - Worms
链接:https://codeforces.com/problemset/problem/474/B题意:n个堆的长度,求某个数在哪个堆里解:暴力实际代码:#include<iostream>#include<cstring>#define csh(a) memset(a,0,sizeof(a))using namespace std;const int N=1E6+10;int ans[N];int main(){ csh(ans); int n;原创 2021-08-22 23:04:11 · 304 阅读 · 0 评论 -
1363A - Odd Selection
链接:https://codeforces.com/problemset/problem/1363/A题意:a大小数组n,选择其中x个,和要求为奇数,看是否能做到输入51 19991 110002 151 502 251 503 3101 102 103输出量YesNoYesYesNo解:思维,首先奇数能够由奇数+偶数组成,偶数能够由奇数+奇数组成那么x里面就得有1个奇数,加上1部分偶数而这部分偶数可以是成对奇数和单个偶数的和实际代码:#includ原创 2021-08-21 21:04:42 · 165 阅读 · 0 评论