codeforces刷题计划
蹲坑看手机
已搬家
展开
-
Cosmic_Tables(模拟 + 思维)
传送门 题意:给你一个矩阵,每次进行与行之间的交换,或者是列与列之间的交换,或者查询(x, y)点的值 思路:一开始想着是不是直接就纯模拟算了,后来想想,直接用数组把行和列也记录下来不就好了吗 代码如下 #include <cstdio> using namespace std; const int M = 1e3 + 10; int r[M], c[M], g[M][M], n, m, k; int main() { #ifndef ONLINE_JUDGE freopen(原创 2020-08-15 15:41:38 · 108 阅读 · 0 评论 -
Cutting_Banner(暴力)
传送门 题意:给你个字符串,减去一段子串,是否能将剩下的不改变顺序拼成"CODEFORCES",能则输出"YES",否则输出"NO" 思路:直接枚举减去的长度,然后暴力 代码如下 #include <algorithm> #include <cstdio> #include <cstring> #include <string> #include <vector> using namespace std; char aim[] = "COD原创 2020-08-14 21:48:39 · 293 阅读 · 0 评论 -
Quasi_Binary(模拟)
传送门 题意:一个只由1和0组成的十进制数叫做Quasi Binary,例如11(十一)就是,现在给你一个n,让你求出他可能有哪些Quasi Binary的和组成,输出最少的Quasi Binary个数并将他们输出 思路:模拟,用个二维数组记录所有的结果位数结果,然后相加输出。例如32就是记录10、10、10、1、1,然后分别将不同位数的相加得到11(10 + 1),11(10 + 1),10(10 + 0) 代码如下 #include <algorithm> #include <cs原创 2020-08-14 21:48:24 · 252 阅读 · 0 评论 -
Tourist‘s_Notes(模拟)
传送门 题意:旅行者每天都会记录自己的海拔高度,他每天规定走海拔相差不超过1的路线,有一天他的记录丢失了,只剩下几天的,问你他之前有可能到达的最高海拔是多少,如果数据出现矛盾,输出"IMPOSSIBLE" 思路:用两个数组记录天数和当天的海拔高度,如果相隔的海拔差比相隔的天数差还大的话就是矛盾,否则就这样计算相隔天数中可能的最大海拔高度:MaxHight=(day[i]+hight[i]−(day[i−1]−hight[i−1]))/2MaxHight = ( day[i] + hight[i] - (d原创 2020-08-14 21:48:06 · 137 阅读 · 0 评论 -
Shooshuns_and_Sequence(模拟的+ 思维)
传送门 什么鬼,div2也出水题?还是我变强了????? 题意:给你一个长为n的序列,再给你一个k,你每次都必须要这样做:选择第k个数,把他复制到序列的最后,再把序列的第一个数给删了,问你要操作多少次可以使得序列数组的数全部相同,如果根本不可能通过上述操作使得序列数组的数全部相同,则输出-1 思路:不难发现,如果一开始第k个数及后面的数有出现不同的数的话,是不可能通过上述操作使得整个数组完全相同,如果可能的话,就往k前找,即往左找,找到第一个与第k个数不同的数,输出他的下标就好了(因为要一直删到那个不同的原创 2020-08-14 21:47:35 · 91 阅读 · 0 评论 -
Olympiad(模拟 + 思维 + 贪心)
传送门 题意:给你两个同长数组代表n个人两场比赛的成绩,再给你一个x,某两个数组的和ai+bj≥xa_i + b_j \ge xai+bj≥x,问你两数组组合成满足式子的排名最高和最低是多少。具体看样例就懂了。 思路:此题对于最高排名一定是1,即第一名,而最低排名的话,一开始知道是一个双指针的贪心,但是就是不知道怎么贪,后来看到大佬的想法豁然开朗:只要找到组合后大于等于x的个数有多少就好了。 具体找法:一个数组a大到小排序,一个数组b小到大排序,然后只要从a从头开始一个一个遍历,从b数组中从头找能与a原创 2020-08-14 21:44:34 · 152 阅读 · 0 评论