随笔分类 -  解题报告

摘要:Teodor is not a liar! 题意:Teodor说他的图片上没有一个点被所有的线段包含,他把这个消息分给他的朋友Sasha, 但是Sasha不信, 所以给Teodor给出几条染色片段, 让Sasha来猜,现在求Sasha最多能猜多少次。 题解:对于每一个点, 找到从左到这个点的位置的最 阅读全文
posted @ 2018-03-07 20:10 Schenker 阅读(231) 评论(0) 推荐(0)
摘要:Game with String 题意:有一个字符串,可以选择从第K位开始,将[K,len(s)-1]的字符都移到前面去,现在给你一个首字母,你可以再选择一位进行观察,然后猜测这个K的值是多少, 现在要求求出能猜对K的概率是多少。 题解:处理出每一个字母开头的第K位是什么字符, 如果这个字符在这个字 阅读全文
posted @ 2018-03-07 16:31 Schenker 阅读(235) 评论(0) 推荐(0)
摘要:H国的身份证号码I HihoCoder - 1558 只要单纯的判断一下前后的乘积就好了, 因为不是很想处理倍数的关系, 所以我这里是用 string去处理。 代码: 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define LL long 阅读全文
posted @ 2018-03-04 20:32 Schenker 阅读(170) 评论(0) 推荐(0)
摘要:HihoCoder - 1617 (从群主那里借鉴来的, 群主好强啊) 题意:中文题不解释。。。 题解: dp[X][i][j] 代表的是X是坐标之和 第一个人 走到位置 dp[i][x-i] 第二个人 走到位置 dp[j][x-j] 所到达的最大值。 然后 dp[x][i][j] 可以从 dp[i 阅读全文
posted @ 2018-03-04 16:33 Schenker 阅读(157) 评论(0) 推荐(0)
摘要:Elections 题意:贿赂选举人使得自己成功获选, 现在求得最小花费是多少。 题解:我们可以发现他是一个凹型函数, 我们用三分去找最小值就好了。 代码: 阅读全文
posted @ 2018-03-03 14:17 Schenker 阅读(183) 评论(0) 推荐(0)
摘要:Maximize 题意:整个程序有2种操作,操作1将一个元素放入集合S中,且保证最新插入的元素不小于上一次的元素, 操作2 找到集合S中的某个子集合, 使得 集合中最大的元素减去平均数的值最大。 题解:找子集合的时候将整个几个分成2边, 左边为前i个数, 右边为最新插入的数。 那么我们就可以想到, 阅读全文
posted @ 2018-03-03 11:01 Schenker 阅读(191) 评论(0) 推荐(0)
摘要:Cashback 题意:一共给你N个数, 然后将他们分成连续的子集, 每个集合可以删除 元素个数/c 个最小元素, 然后求每个集合删除元素后的总和。 题解:我们将集合分为1个元素或者K个元素,每K个元素查询一下最小值,然后找到最小值, 然后 dp一下就可以找到最后的结果 emmm, 当时CF的时候题 阅读全文
posted @ 2018-03-02 21:11 Schenker 阅读(209) 评论(0) 推荐(0)
摘要:Buy a Ticket 题意要求:求出每个城市看演出的最小费用, 注意的一点就是车票要来回的。 题解:dijkstra 生成优先队列的时候直接将在本地城市看演出的费用放入队列里, 然后直接跑就好了, dis数组存的是, 当前情况下的最小花费是多少。 代码: 阅读全文
posted @ 2018-03-02 20:14 Schenker 阅读(218) 评论(0) 推荐(0)
摘要:Misha, Grisha and Underground 题意:Misha 和 Grisha 是2个很喜欢恶作剧的孩子, 每天早上 Misha 会从地铁站 s 通过最短的路到达地铁站 f, 并且在每个地铁站上都写上一句话, 然后Grisha 再从地铁站 t 通过最短的路到达地铁站 f, 并且记录下 阅读全文
posted @ 2018-02-27 21:05 Schenker 阅读(232) 评论(0) 推荐(0)
摘要:A:逆序数 写过一篇原理,这里不想多说。 传送门 代码: 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define LL long long 4 #define ULL unsigned LL 5 #define fi first 6 #d 阅读全文
posted @ 2018-02-25 22:06 Schenker 阅读(356) 评论(0) 推荐(0)
摘要:Two Sets 题意:就是将一对数放进setA, setB中, 如果放进setA的话要求满足 x与a-x都在这个集合里面, 如果放进setB中要求满足x与b-x都在这个集合中。 题解:我们将能放进B的元素优先放在B中,如果能放进B就直接将2个元素放进B中。 然后如果能放进A中就放进A中, 如果在放 阅读全文
posted @ 2018-02-25 21:45 Schenker 阅读(280) 评论(0) 推荐(0)
摘要:Blue Jeans 题意:T组数据, 每次数据n个串, 求相同的连续子串,要求最长, 如果长度相同有多组, 那么输出 字典序最小的那个。 第一次字符串Hash, 写的不好, 见谅, 2333。 貌似更暴力的方法能过。 代码: 1 #include<cstdio> 2 #include<iostre 阅读全文
posted @ 2018-02-24 12:10 Schenker 阅读(164) 评论(0) 推荐(0)
摘要:采矿 题解:如果给你一条线段(左右端点设为A,B), 那么在这条线上的任意一点到A B距离之和是一个定值, 然后如果再这条线段内在任意确定一个定点C, 那么这条线段上再任意取一个点,这个点到 A B C距离最小的点是和C点重合的位置, 因为AB距离为定制。 所以给你一堆点在一条直线上, 那么所有距离 阅读全文
posted @ 2018-02-23 15:48 Schenker 阅读(120) 评论(0) 推荐(0)
摘要:HDU-1005 题解:每次的数都会对7进行mod操作,mod之后数的范围一定在[0,6]之间,如果每次都循环到n的话明显会TLE,那么就说明这个结果会出现一个周期,我们只要找到这个周期,然后根据周期进行mod,然后找到结果就好了。 PS:讨论区的最简代码的mod48操作我也不是很理解,但是有人是说 阅读全文
posted @ 2018-02-22 23:12 Schenker 阅读(122) 评论(0) 推荐(0)
摘要:ZOJ-3941 题意:Edward想去参加音乐会,每次参加完音乐会只之后都会持续K天的兴奋(从今天到今天+K-1天), 现在共有n场音乐会, 每场音乐会都有一个开始时间和结束时间,并且他能选择其中的M天去参加, 现在求他能兴奋的总天数最多。 题解:如果他在第一段时间能用完所有的次数(有效利用的情况 阅读全文
posted @ 2018-02-21 17:35 Schenker 阅读(234) 评论(0) 推荐(0)
摘要:Love Rescue 题意:Valya 和 Tolya 是一对情侣, 他们的T恤和头巾上都有小写字母,但是女朋友嫌弃男朋友上T恤上的字不和她的头巾上的字一样,就很生气, 然后来了一个魔法师, 它可以购买符文, 每个符文可以让一个字母变成另外一个字母,魔法师想购买足够的符文使得他们的字母串相同, 因 阅读全文
posted @ 2018-02-20 18:44 Schenker 阅读(191) 评论(0) 推荐(0)
摘要:939 C 题意:若干年以后地球会变成n个时区, 为了方便计时, 每个时区的时间从1:00开始到n:00点结束, 现在将要举行一场c赛, 每个时区内都有ai个人参加,并且比赛开始时间不早于当地时间s:00, 比赛结束时间不晚于(或等于)f:00才会参加,现在求比赛的开始时间(第一时区的当地时间),使 阅读全文
posted @ 2018-02-20 18:14 Schenker 阅读(236) 评论(0) 推荐(0)
摘要:935 C 题意:Fifa想用wifi下载足球游戏, 但是Fafa是个流浪狂魔, 所以Fifa想让他的wifi在公寓里尽量覆盖最大的面积,并且不覆盖到Fafa和公寓外的人,fafa的坐标可以在公寓外。 题解:求半径最大的地方就好了, 这个半径最大的位置一定在Fafa和公寓中心的连线上(前提是Fafa 阅读全文
posted @ 2018-02-20 17:44 Schenker 阅读(276) 评论(0) 推荐(0)
摘要:A: 石油采集 刚开始题目读错了,乱交了4发,然后终于读对题目,想用匈牙利算法跑2分匹配,但是比赛的时候不会跑,赛后学了一下,补了一下 1 #include<bits/stdc++.h> 2 using namespace std; 3 const int N = 55*55; 4 string s 阅读全文
posted @ 2018-02-12 20:40 Schenker 阅读(229) 评论(0) 推荐(0)
摘要:Population Size 题意: 一共n个数, 每个-1都可以变成一个正数, 现在要求最少数目的等差子序列,并且在这个子序列必须要连着截取一段,不能分开截取。 样例1: 8 6 4 2 1 4 7 10 2 可以分成 { 8 6 4 2} {1 4 7 10 } {2} 3个等差子序列。 题解 阅读全文
posted @ 2018-02-12 20:29 Schenker 阅读(360) 评论(0) 推荐(0)