JAVA
文章平均质量分 58
三生锁链
希望这是我在计算机一步一步成长的证明!
展开
-
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 · 334 阅读 · 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 · 194 阅读 · 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 · 250 阅读 · 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 · 180 阅读 · 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 · 453 阅读 · 0 评论 -
codeforces 解题报告 1006D. Two Strings Swaps 分类讨论
http://codeforces.com/contest/1006/problem/D解题思路:1.按照题目要求对字符串进行分割,分组讨论,每组得到四个字符,例如:上面串的第一个和最后一个,下面串的第一个和最后一个。2.分类讨论: 一组字符中存在两对相等字符的情况则不需要替换操作 一组字符中上面两个与下面两个至少存在一对相等字符的情况,那么只需要修改上面的一个就能获得...原创 2018-07-17 18:07:51 · 450 阅读 · 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 · 168 阅读 · 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 · 153 阅读 · 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 · 175 阅读 · 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 · 128 阅读 · 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 · 223 阅读 · 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 · 228 阅读 · 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 · 236 阅读 · 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 · 178 阅读 · 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 · 194 阅读 · 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 · 463 阅读 · 0 评论 -
codeforces 解题报告 1008C. Reorder the Array 贪心
http://codeforces.com/contest/1008/problem/C解题思路:1.给出一个序列,你可以任意变换数字的位置,最终使得所有位置比原位置的数大于的总和最大2.先对数组进行小到大排序3.计算所有相同值的个数4.最左边的一组数都能被它右边的任意值覆盖而达到要求,当然这个覆盖的数量是最左边组和次左边组的个数的较小值5.然后用这两组合并成为新的一组可以被覆盖的序列,选择两组的...原创 2018-07-14 08:51:33 · 291 阅读 · 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 · 293 阅读 · 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 · 439 阅读 · 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 · 246 阅读 · 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 · 163 阅读 · 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 · 122 阅读 · 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 · 198 阅读 · 0 评论 -
LeetCode #6. Z字形变换 字符串处理
https://leetcode-cn.com/problems/zigzag-conversion/description/行数为1的直接返回原串其他情况:设行数个空字符串,遍历原串,按照Z字型循环把字符塞进对应串,最后把串直接加起来就是结果串啦!class Solution { public String convert(String s, int numRows) { ...原创 2018-06-27 20:41:32 · 238 阅读 · 0 评论 -
LeetCode #13. 罗马数字转整数 HashMap
https://leetcode-cn.com/problems/roman-to-integer/description/权当学一下HashMapimport java.util.HashMap;import java.util.Map;class Solution { public int romanToInt(String s) { HashMap<C...原创 2018-06-26 19:51:56 · 205 阅读 · 0 评论 -
LeetCode #12. 整数转罗马数字 TreeMap
https://leetcode-cn.com/problems/integer-to-roman/description/1.弄两个数组,位置上相应的罗马数字对应相应阿拉伯数字2.用TreeMap存储数据,更改排序为按照Key降序3.循环存入TreeMap4.按照除法和求余逐步得到最终的罗马数字import java.util.Comparator;import java.util.Itera...原创 2018-07-01 22:20:04 · 170 阅读 · 0 评论 -
LeetCode #9. 回文数 StringBuffer
https://leetcode-cn.com/problems/palindrome-number/description/ String的equals方法因为重写了Object的equals方法,所以可以比较字符串的内容,而StringBuffer因为没重写equals方法,直接继承了Object的equals方法,所以不行。 可以使用toString() 方法将StringBuf...原创 2018-06-26 18:37:02 · 191 阅读 · 0 评论 -
LeetCode #7. 反转整数 整型和字符串的互换
https://leetcode-cn.com/problems/reverse-integer/description/思路: 把传入的整型的绝对值转换为字符串,然后再把这个字符串转换为整型,判断正负就返回相应值。注意: 假设我们的环境只能存储 32 位有符号整数,其数值范围是 [−231, 231 − 1]。根据这个假设,如果反转后的整数溢出,则返回 0。 喵的,一开始没看...原创 2018-06-26 18:28:01 · 187 阅读 · 0 评论 -
LeetCode #2. 两数相加 链表
https://leetcode-cn.com/problems/add-two-numbers/description/今年春招时,我学长被问到这道题,明明是一道简单得一匹的题,但HR的语言表达能力实在是让人无力吐槽,这让我对明年的春招表示有点haipia。思路:用链表模拟两个数字加法,注意一下进位以及加位的情况就好了。我刚刚开始用JAVA,写的代码自己看着都觉得丑……(逃/** * Defi...原创 2018-06-26 17:32:55 · 152 阅读 · 0 评论 -
LeetCode #1. 两数之和 循环
https://leetcode-cn.com/problems/two-sum/description/直接两重循环找到两个目标值,返回,结束……class Solution { public int[] twoSum(int[] nums, int target) { int di[] = new int[2]; OK: ...原创 2018-06-26 17:27:21 · 129 阅读 · 0 评论 -
LeetCode #3.无重复字符的最长子串 贪心 JAVA
吐槽一下:不给数据范围是几个意思……https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/description/用JAVA写工程还挺有意思的思路:贪心求最长无重复字符的子串从头开始遍历,没出现过的字符就用数组 isExises 标记,然后计数器加1。对于出现过的字符再次出现表示当前算的子串(...原创 2018-06-26 17:24:21 · 209 阅读 · 0 评论 -
LeetCode #14. 最长公共前缀 String
https://leetcode-cn.com/problems/longest-common-prefix/description/1.算出字符串数组的最短字符串长度2.判断所有字符串对应的下标的字符是否相等,不相等直接退出二重循环class Solution { public String longestCommonPrefix(String[] strs) { S...原创 2018-06-30 20:05:18 · 170 阅读 · 0 评论 -
LeetCode #20. 有效的括号
https://leetcode-cn.com/problems/valid-parentheses/description/解:用一个栈来存储没匹配的括号每当遇到一种右括号,就判断栈顶括号是否能和该括号匹配,能就出栈并继续判断下一个字符,不能就返回false在匹配过程中要注意栈可能已空(没有左括号)的情况,例如:1.整个字符串只有右括号;2.整个字符串只有左括号最后只有当栈为空的情况才是所有括号...原创 2018-07-09 22:38:17 · 168 阅读 · 0 评论 -
LeetCode #21. 合并两个有序链表 递归
https://leetcode-cn.com/problems/merge-two-sorted-lists/description/合并两条有序链表,形成一条新的有序链表:用递归实现1.如果其中一条链表为空,那么只需要接上(返回)另一条链表即可2.两条链表都不为空的话就比较两条链当前位置的值大小。左链小,就用小值创建一个新结点到合并链上,合并链的下一个结点则递归调用函数合并除掉已添加的点后的两...原创 2018-07-09 22:47:37 · 300 阅读 · 0 评论 -
codeforces 解题报告 1006A. Adjacent Replacements 傻逼题
http://codeforces.com/contest/1006/problem/A心历:一点开题目,喵的那么长,看了两行。算了,不看了,猜样例吧。卧槽,这样例和我读的题目好像完全不一样。既然如此还是按样例来试一发。卧槽,这也太水了吧,居然过了。连 0 ,-1 都不卡一卡。然后我就获得了人生中最快的第一题,2分组,rank 37。解题思路:神特么猜样例:奇数不变,偶数减 1imp...原创 2018-07-17 10:18:26 · 245 阅读 · 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 · 293 阅读 · 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 · 183 阅读 · 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 · 264 阅读 · 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 · 186 阅读 · 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 · 220 阅读 · 0 评论