codeforces
文章平均质量分 60
三生锁链
希望这是我在计算机一步一步成长的证明!
展开
-
codeforces 解题报告 1009A. Game Shopping 模拟
http://codeforces.com/problemset/problem/1009/A解题思路:1.商店的n个游戏机按顺序排列,这里以价格代表,然后某个傻逼钱包里有m张钱,这个傻逼会依次看他钱包里的第一张钱能不能买下当前面前的游戏,能就买下,并且把第一张钱花掉(不找零,人傻钱多),依次走向下一个游戏机。计算能买多少个游戏机。import java.util.*;public class...原创 2018-07-15 21:14:11 · 312 阅读 · 0 评论 -
Codeforces Round #496 (Div. 3) 解题报告 C. Summarize to the Power of Two 暴力
http://codeforces.com/contest/1005/problem/C解题思路:1.先弄出一个2的N次方的数组2.hashmap记录数字是否出现,以及是否重复(这里我令重复的hash值都为2)3.遍历原数组,每个数字与2的N次方数组作差,用hashmap查看差值是否存在:差值小于0就不需要判断(原数组不存在负数)存在且差值和数组值不相等的,表示该数组值能找到一个数使得它等于2的M...原创 2018-07-11 15:42:05 · 143 阅读 · 0 评论 -
Codeforces Round #496 (Div. 3) 解题报告 B. Delete from the Left 暴力 模拟
http://codeforces.com/contest/1005/problem/B解题思路:1.从左往右匹配的方法:先令两条串等长(即把长串左边长的部分截掉)然后两串逐位比较,不相等的话把前面的全部删掉(即都加到cnt)2.从右往左匹配的方法:直接两串右往左匹配直到第一次不相等或者两串匹配完毕两串总长度减去匹配成功的次数×2就是答案现场写的C++:先找出长串的起始下标,从左向右匹配(当时是真...原创 2018-07-11 15:28:42 · 163 阅读 · 0 评论 -
Codeforces Round #496 (Div. 3) 解题报告 A. Tanya and Stairways 模拟
http://codeforces.com/contest/1005/problem/A解题思路:能有什么思路,记得判最后一组就好了#include <iostream>#include <vector>#include <string>#include <algorithm>using namespace std;const int ma...原创 2018-07-11 15:16:00 · 116 阅读 · 0 评论 -
Codeforces Round #403 (Div. 2) 解题报告 A. Andryusha and Socks 模拟
http://codeforces.com/contest/782/problem/A解题思路:1.用hashmap记录桌面上的袜子,containsKey()方法返回是否存在Key2.每拿出一只袜子就看桌面上有没有同一对的袜子,有就桌面上的总袜子数cnt - 2,并且更新hashmap令桌面上的刚刚成双的袜子消失(进柜子)3.每次取袜子,处理袜子后维护桌面上最大袜子数import java.ut...原创 2018-07-11 15:11:39 · 108 阅读 · 0 评论 -
codeforces 解题报告 1006C. Three Parts of the Array brute force / binary search
http://codeforces.com/contest/1006/problem/C解题思路:1.暴力: 弄两根指针分别指向头尾,再弄一个前序和和一个后序和 两和相等,更新ans,并增加前序和(左指针右移) 前序和比后序和小,增加前序和(左指针右移) 前序和比后序和大,增加后序和(右指针左移) 直到两指针相遇 2.二分: ...原创 2018-07-17 12:12:57 · 183 阅读 · 0 评论 -
codeforces 解题报告 1006A. Adjacent Replacements 傻逼题
http://codeforces.com/contest/1006/problem/A心历:一点开题目,喵的那么长,看了两行。算了,不看了,猜样例吧。卧槽,这样例和我读的题目好像完全不一样。既然如此还是按样例来试一发。卧槽,这也太水了吧,居然过了。连 0 ,-1 都不卡一卡。然后我就获得了人生中最快的第一题,2分组,rank 37。解题思路:神特么猜样例:奇数不变,偶数减 1imp...原创 2018-07-17 10:18:26 · 232 阅读 · 0 评论 -
codeforces 解题报告 1006B. Polycarp's Practice greedy sortings
http://codeforces.com/contest/1006/problem/B解题思路:1.遍历 K 次找到前 K 大的值的下标,顺便计算前 K 大的和2.下标排序3.划分区间 第一个区间为以其下标往左延申到尽头,往右延申到下一个下标 剩余区间均为对应下标向右延申到下一个坐标(最后一个区间延申到 n ) import java.util.Colle...原创 2018-07-17 10:14:26 · 275 阅读 · 0 评论 -
codeforces 解题报告 895A. Pizza Separation brute force
http://codeforces.com/problemset/problem/895/A解题思路:1.暴力枚举所有连续的段,维护答案import java.util.Scanner;public class Main { public static void main(String args[]) { Scanner sc = new Scann...原创 2018-07-16 21:09:41 · 170 阅读 · 0 评论 -
codeforces 解题报告 987C. Three displays DP 暴力
http://codeforces.com/contest/987/problem/C解题思路:这一题我深深地感受到了PY的可怕,后附一个女生的PY代码1.先暴力枚举前两个数的最小和2.然后暴力枚举前两个数与第三个数的最小和3.我这是暴力过题,俺也不知道这道题DP在哪import java.util.HashSet;import java.util.Iterator;import java.u...原创 2018-07-16 15:56:19 · 241 阅读 · 0 评论 -
Codeforces Round #495 (Div. 2) 解题报告 B. Sonya and Exhibition 数学思维
http://codeforces.com/contest/1004/problem/B解题思路:1.样例什么的都是误导人的骗子2.一开始被样例误导,写了一大坨奇怪的东西,还拼命想打补丁。。(傻子直视感)3.重审一下题目要求就很明确了:要求每个区间的0/1个数尽可能相等4.那直接01串这样输出就好了(A过去后看后台样例,感受到了出题人深邃的恶意)#include <iostream>...原创 2018-07-10 12:14:12 · 104 阅读 · 0 评论 -
Codeforces Round #495 (Div. 2) 解题报告 A. Sonya and Hotels
http://codeforces.com/contest/1004/problem/A解题思路:1.新添加一间酒店,要求酒店离已有的最近的一间酒店的距离恰好等于d2.最左和最右必定存在合适的两种情况3.酒店之间的情况就要判断两间酒店间的距离:小于2d,表示无法在这两间酒店中间找到合适情况等于2d,表示这两间酒店的正中间可以满足条件,新建酒店大于2d,表示这两间酒店之间存在两种满足条件的情况#in...原创 2018-07-10 12:07:32 · 159 阅读 · 0 评论 -
codeforces 解题报告 987B. High School: Become Human math
http://codeforces.com/contest/987/problem/B解题思路:判断 x 的 y 次方和 y 的 x 次方的大小,无非就是判断几种情况两数相等,一定是等号一个数为2,另一个数为4,等号2的3次方小于3的2次方其余的都是较小值大import java.util.Scanner;public class Main { public static void ...原创 2018-07-16 13:41:01 · 172 阅读 · 0 评论 -
codeforces 解题报告 987A. Infinity Gauntlet
http://codeforces.com/problemset/problem/987/A解题思路:1.六个字符串对应六个字符串,用map存储。输入一个字符串,就把这个字符串对应的map删掉2.遍历剩余的key,输出对应的valueimport java.util.HashMap;import java.util.Iterator;import java.util.Map;import j...原创 2018-07-16 13:21:16 · 212 阅读 · 0 评论 -
codeforces 解题报告 978C. Letters binary search
http://codeforces.com/contest/978/problem/C解题思路:1.数据范围比较大,暴力复杂度大概O(n*n),爆搜一定超时2.由于宿舍是连续的,房间也是连续的,所以我们假设所有房间呈递增分布(1 ~ a1+a2+……+an)3.按照宿舍楼进行统计分布的话会得到一条序列,表示楼内宿舍的最大房间号,通过与前一栋楼的最大房间号进行计算得到任意的房间号4.例如样例1,根据...原创 2018-07-16 12:37:21 · 319 阅读 · 0 评论 -
codeforces 解题报告 978B. File Name strings greedy
http://codeforces.com/contest/978/problem/B解题思路:1.不能出现"xxx"这样的串,贪心删掉多余的x就好了2.遍历一遍字符串,遇到 'x' 计数器++,计数器大于等于3表示要删掉一个'x',遇到非'x'就令计数器清零import java.util.Scanner;public class Main { public static void...原创 2018-07-16 11:45:22 · 183 阅读 · 0 评论 -
Codeforces Round #496 (Div. 3) 解题报告 D. Polycarp and Div 3 DP 数字理论
http://codeforces.com/contest/1005/problem/D解题思路:1.能被3整除的单个数字(0,3,6,9……)2.对3取模的数字做两个计数器,当余数1的个数或余数2的个数出现连续三个时3.当余数1和2的个数各有一个4.满足以上三种情况则令目标计数器+1,然后把两个余数计数器清零重新计算import java.util.Scanner;public class ...原创 2018-07-11 15:46:27 · 158 阅读 · 0 评论 -
codeforces 解题报告 1006D. Two Strings Swaps 分类讨论
http://codeforces.com/contest/1006/problem/D解题思路:1.按照题目要求对字符串进行分割,分组讨论,每组得到四个字符,例如:上面串的第一个和最后一个,下面串的第一个和最后一个。2.分类讨论: 一组字符中存在两对相等字符的情况则不需要替换操作 一组字符中上面两个与下面两个至少存在一对相等字符的情况,那么只需要修改上面的一个就能获得...原创 2018-07-17 18:07:51 · 438 阅读 · 0 评论 -
codeforces 解题报告 1009B. Minimum Ternary String Greedy
http://codeforces.com/problemset/problem/1009/B解题思路:1.贪心令0尽量左移,2尽量右移。由于2不能越过其右边的0,所以我以2,0作为分界分组。前面这个思想会WA4,HACK数据:2021。前面思路答案是:2012,但真正答案是1202。这个时候就想到加一个补丁:令所有分组的1都汇集到第一组的1的位置2.我用三个 Vector 存储分组,tag = ...原创 2018-07-15 21:06:47 · 222 阅读 · 0 评论 -
codeforces 解题报告 977E. Cyclic Components graphs DFS
http://codeforces.com/problemset/problem/977/E解题思路:1.这里的环是没有任何多余的边的环,无自环,即环内所有点的度严格等于22.DFS一个一个地找出图,DFS搜索时标记已搜的点,避免重复搜索3.对找到的每个图进行check,看是否图内所有点的度严格等于2,是就成环,不是就非环#include <bits/stdc++.h>using n...原创 2018-07-15 20:31:19 · 166 阅读 · 0 评论 -
codeforces 解题报告 977D. Divide by three, multiply by two DFS
http://codeforces.com/problemset/problem/977/D解题思路:1.给一个序列,要求给它重新排序,规则要满足以下其中之一条件:前一个数是后一个数的三倍后一个数是前一个数的两倍2.序列长度只有100,并且保证答案一定存在,直接裸DFS爆搜答案import java.util.*;import static java.lang.System.exit;pu...原创 2018-07-15 20:18:17 · 187 阅读 · 0 评论 -
codeforces 解题报告 979A. Pizza, Pizza, Pizza!!! math
http://codeforces.com/contest/979/problem/A解题思路:1.总人数是朋友数n加上自己,就是n+12.总人数是奇数时,刀的切法就不能直线穿过整个披萨,所以答案就是n+1。举个例子,画个五角星就知道了3.总人数是偶数时,每一刀都可以将披萨多分两部分,答案就是(n+1)/2。举个例子,平均过圆心切三刀得六块披萨4.注意范围 n < 1e185.坑点就是 n ...原创 2018-07-15 20:05:26 · 442 阅读 · 0 评论 -
codeforces 解题报告 1008C. Reorder the Array 贪心
http://codeforces.com/contest/1008/problem/C解题思路:1.给出一个序列,你可以任意变换数字的位置,最终使得所有位置比原位置的数大于的总和最大2.先对数组进行小到大排序3.计算所有相同值的个数4.最左边的一组数都能被它右边的任意值覆盖而达到要求,当然这个覆盖的数量是最左边组和次左边组的个数的较小值5.然后用这两组合并成为新的一组可以被覆盖的序列,选择两组的...原创 2018-07-14 08:51:33 · 276 阅读 · 0 评论 -
codeforces 解题报告 1008B. Turn the Rectangles 暴力贪心
http://codeforces.com/contest/1008/problem/B解题思路:1.可以交换每一行的两个数,最终使得右边那列非增2.暴力遍历,以行为组,在不大于前一组的前提下,使得 h[i] 取两数中较大值3.最后检查序列是否非增即可import java.util.Scanner;public class Main { public static void mai...原创 2018-07-14 08:30:40 · 281 阅读 · 0 评论 -
codeforces 解题报告 1008A. Romaji 字符串模拟
http://codeforces.com/problemset/problem/1008/A吐槽:真是毒瘤DIV2场,我一个pupil打了三题才+1分解题思路:1.遍历字符串,找出双辅音或者辅音结尾就返回NO,找不到就表示串满足条件返回YES2.注意字符 'n' 特殊处理,它后面可以接任何字符或不接字符,遍历时直接跳过即可3.公告添加样例:nz 和 king4.我学过日文罗马音的人觉得 ...原创 2018-07-14 08:22:17 · 420 阅读 · 0 评论 -
codeforces 解题报告 556C. Case of Matryoshkas
http://codeforces.com/problemset/problem/556/C解题思路:1. n个套娃,编号1~n。分成k组。2.两种操作如下:从一组套娃里拿出最外层的一个把一个相对大的套娃套在一个相对小的外面3.有编号1的套娃组,需要找到最大连续套娃(1号套娃到某个套娃),这个连续套娃作为一个整体不需要任何操作4.其他组的最小套娃不需要取出操作,只要套操作5.剩余的套娃都需要取出和...原创 2018-07-13 16:03:03 · 229 阅读 · 0 评论 -
codeforces 解题报告 556B. Case of Fake Numbers
http://codeforces.com/problemset/problem/556/B解题思路:1.数据范围1000,暴力模拟可过2.题目说可以执行多次,我大胆执行1000次,找不到就认定它不可能满足条件import java.util.Scanner;public class Main { public static void main(String args[]) { ...原创 2018-07-13 15:55:44 · 149 阅读 · 0 评论 -
codeforces 解题报告 556A. Case of the Zeros and Ones
http://codeforces.com/problemset/problem/556/A解题思路:1.计算0和1的个数,答案就是大减小import java.util.Scanner;public class Main { public static void main(String args[]) { Scanner sc = new Scanner(Syst...原创 2018-07-13 15:52:26 · 191 阅读 · 0 评论 -
codeforces 解题报告 1003C. Intense Heat 暴力
http://codeforces.com/problemset/problem/1003/C解题思路:1.给出n天的气候值,求连续小于等于k天的气候最大平均值2.数据范围n<=5000,直接暴力枚举所有情况即可,答案误差1e-6,直接doubleimport java.util.Scanner;public class Main { public static void ma...原创 2018-07-13 11:28:19 · 214 阅读 · 0 评论 -
codeforces 解题报告 1003A. Polycarp's Pockets 模拟
http://codeforces.com/problemset/problem/1003/A解题思路:1.每个包里只能有不同面额的硬币,问要多少个包才能装完这堆硬币2.弄n个桶,桶内是相同硬币的数量,然后找到最大的桶就好了3.其实答案就是找元素个数最多的那个值import java.util.Scanner;public class Main { public static voi...原创 2018-07-13 10:50:44 · 180 阅读 · 0 评论 -
codeforces 解题报告 1003B. Binary String Constructing 构造
http://codeforces.com/problemset/problem/1003/B解题思路:1. a个0,b个1,构造一个有x个相邻字符不相等的二进制字符串2.在纸上构造一下就可以发现一个“01”串有一个相邻字符不相等,每往后增加一个“01”(例如“0101”)就会增加两个相邻字符不相等。由于数据保证答案存在,并且01必定至少有一个,那么我就构造如上的字符串(首先令x+1,修正第一个“...原创 2018-07-13 10:47:06 · 230 阅读 · 0 评论 -
Codeforces Round #495 (Div. 2) 解题报告 C. Sonya and Robots 模拟
http://codeforces.com/contest/1004/problem/C解题思路:真是好久没训练了,我被爆 int 卡了一上午1.预处理找到数组中每个数的右边的不同数字的个数2.从左往右遍历,每当遇到一个没出现过的数字就加上该数字右边不同数字的个数(不包括自己)3.变量过程中获得不同数字的个数如果暴力加一层循环的话就超时(1e5的数据),所以才需要预处理import java.ut...原创 2018-07-12 18:11:47 · 166 阅读 · 0 评论 -
codeforces 解题报告 1006E. Military Problem 树的先序遍历(DFS)
http://codeforces.com/contest/1006/problem/E解题思路:1.给出军官的所属上司信息,构建出一棵树,在树的先序遍历的情况下,问对应结点能找到某个位置的下属2.用邻接表存储每个节点的子节点信息3. DFS 找到树先序遍历的序列 vgoal4. sub 记录每个结点拥有的结点数量信息(包括自己),逆向遍历树计算子节点的结点数量和即可...原创 2018-07-17 20:30:34 · 433 阅读 · 0 评论 -
codeforces 解题报告 978A. Remove Duplicates 模拟
http://codeforces.com/contest/978/problem/A解题思路:1.删掉重复的元素,只留下序列中不重复的最右边的元素2.逆向搜一遍,把第一次遇到的元素入栈3.依次出栈就是答案import java.util.*;public class Main { public static void main(String args[]) { S...原创 2018-07-16 11:31:58 · 181 阅读 · 0 评论 -
Codeforces #479 (Div. 3) 解题报告 F. Consecutive Subsequence 动态规划
题解:1、DP[i] 记录以数值a[i] 为子串结尾的长度,同时维护最大值(即要求的最长子串)2、由于序列值太大,开数组dp开不下,所以这里用map来存储,用key-value的方式来开需要用到的空间3、对应的ans就代表了最长子串长度,tag代表最长子串的最大值,由于子串必须满足等差数列且公差为1,那么只要知道最后一个值和序列长度就相应地可以知道整个序列4、最后只要按照得到序列去原序列中寻找对应...原创 2018-05-08 19:58:21 · 303 阅读 · 0 评论 -
Educational Codeforces Round 25 C Multi-judge Solving 贪心
CF传送门题意:1. 某人计划在CF上刷n道题,他最初已掌握的题目难度为k2. 如果一道新题的难度小于两倍的k,就表示这道题可以直接在CF上刷过去3. 否则他就需要到其他OJ上刷题目来提高自己掌握的题目难度以便在CF上继续刷题4. 无论在CF还是其他OJ上,刷难度都是以上规则5. 问在其他OJ上练经验题数题解:1. 贪心思想,尽量在已有的基础上去刷题2. 先原创 2017-07-18 07:49:55 · 244 阅读 · 0 评论 -
Educational Codeforces Round 25 B Five-In-a-Row 基础题
CF传送门题解:问在棋盘的空位上再放一个X棋是否能使X胜利题解:1. 暴力搜索就行了,图才10X10,随便嵌套五六个循环都不会超时,所以这题就随便写2. CF给出的题解是直接对图进行遍历看看是否存在五个连线点上是4个"X"和1个"."的情况,有就YES3. 我写的是先遍历图把可能的点补上再搜五连点,我的复杂度要比CF题解多出几个循环,但还是过了以下是我的AC代码原创 2017-07-18 07:38:52 · 249 阅读 · 0 评论 -
Educational Codeforces Round 25 A Binary Protocol 基础题
CF传送门题意:1. 给出一个只包含0和1的字符串,要求根据特殊编码要求输出编码后的数2. 遇到1就用累加器把1累加为一个值输出3. 遇到0就输出0的个数减1个0题解:没有题解,直接暴搜就好了以下是我的AC代码:#include using namespace std;int main(){ int n,num=0; char s原创 2017-07-18 07:30:53 · 415 阅读 · 0 评论 -
Codeforces Round #424 (Div. 2) B Keyboard Layouts 思维题 字符串处理
CF传送门题意:1. 这个世界上有很多种键盘,他们的共同点是排版一样,唯一不同就是字母的位置不同2. 第一个字符串就是原键盘,第二个字符串是新键盘,第三个字符串是用原键盘进行读入的3. 请问如果键位不变的情况下,使用新键盘读入的是什么字符串(大小写要符合第三字符串)题解:1. 这个串虽然不长,但是如果暴力从原键盘搜下标的话,这个遍历的时间复杂度应该还是挺高的2.原创 2017-07-14 12:03:02 · 269 阅读 · 0 评论 -
Codeforces Round #424 (Div. 2) A Unimodal Array 思维题
CF传送门题意:1. 给出一个整数数组,问这个数组是不是单峰数组(即递增,平,递减。只能出现一个向上的波峰或者没有波峰)2. 可以没有左边的递增,也可以没有右边的递减,也可以没有中间的平峰。总之不能出现多峰,不能出现向下峰即可3. 4-4-2就是没有左边递增的情况,2-4-4是没有右边递减的情况,3-3-3是平峰情况,单个数字也是平峰,1-2-1是没有平峰情况,这些都是原创 2017-07-14 11:46:11 · 292 阅读 · 0 评论