
瞎搞题
文章平均质量分 64
Aerolite坠落
这个作者很懒,什么都没留下…
展开
-
HDU 4970(杭电多校#9 1011题)Killing Monsters(瞎搞)
题目地址:HDU 4970 先进行预处理,在每个炮塔的火力范围边界标记一个点。然后对每个点的伤害值扫一遍就能算出来。然后在算出每个点到终点的总伤害值,并保存下来,也是扫一遍即可。最后在询问的时候直接判断即可,复杂度O(2*n). 代码如下: #include #include #include using namespace std; #define maxn 110000 #defi原创 2014-08-19 18:26:01 · 1129 阅读 · 0 评论 -
(白书训练计划)UVa 1152 4 Values whose Sum is 0(中途相遇法。。)
题目地址:UVa 1152 先枚举A集合与B集合的和,存起来,然后再枚举C集合与D集合的和,看与存起来的值有多少个是互为相反数的。水题。找存起来的值时可以用二分找。 代码如下: #include #include #include #include #include #include #include #include #include #include #include原创 2014-09-03 19:58:44 · 2027 阅读 · 2 评论 -
(白书训练计划)UVa 11572 Unique Snowflakes(窗口滑动法)
题目地址:UVa 11572 这种方法以前接触过,定义两个指针,不断从左向右滑动,判断指针内的是否符合要求。 这个题为了能快速判断是否有这个数,可以用STL中的set。 代码如下: #include #include #include #include #include #include #include #include #include #include #incl原创 2014-09-04 13:50:32 · 1250 阅读 · 0 评论 -
HDU 5056 Boring count(窗口滑动法)
题目地址:HDU 5056 我晕啊。。当时绝壁脑残了。。。当时想到的方法是完全正确的。。但是在脑算第二个样例的时候,居然一直把前三个abc当成了9种。。。于是后面的三个abc每个都要递增2,而不是我想的方法中的递增3。。。于是一直没写代码。。。 言归正传。。 这题的思路就是窗口滑动,两个指针,让指针内的始终保持每个字母的数量少于k个。然后递推过去。然后因为每次右指针往右移动一个的时候,就相当原创 2014-09-29 13:49:09 · 998 阅读 · 0 评论 -
FZU 2178 礼物分配 (折半搜索+二分)
题目地址:FZU 2178 由于n最大是30,一次全搜的话妥妥的超时,那么可以采用折半搜索。分成相同的两份,对左边的一堆进行预处理,然后再处理右堆,每一次都对左堆进行二分,找最接近的。由于两个人取的不能相差多于1个,所以要对每个个数分开存储。并排序,排序是为了后边的二分。 代码如下: #include #include #include #include #include #inc原创 2015-01-29 17:17:32 · 1350 阅读 · 0 评论 -
POJ 1019 Number Sequence (规律题)
题目地址:POJ 1019 水题,找找规律然后从左到右遍历一遍找就可以了。 代码如下: #include #include #include #include #include #include #include #include #include using namespace std; #define LL __int64 #define pi acos(-1.0) c原创 2015-01-22 15:53:22 · 902 阅读 · 0 评论 -
HDU 4588 Count The Carries (2013年南京邀请赛)
题目地址:HDU 4588 这题是学长跟我说的一道数位DP。。然后我就按着数位DP去做的,倒是写出来了,但是一直TLE。。后来用类似找规律的方法解出来了。。 首先这题其实就是求每位上总共有多少个1,然后不断从低位开始向高位进位。 方法是比如二进制为1010010的这个数,就可以拆成1000000+10000+10三个数,然后从0到111111就是0和1的一个全排序,那么每一位上的1的个数总和原创 2015-01-21 19:42:24 · 1133 阅读 · 0 评论 -
Codeforces Round #221 (Div. 2) D. Maximum Submatrix 2 (思维题)
题目地址:codeforces 221 D 这场是人生中做的第一场CF中的D题。(当时只做出来了A题。。)过年之际回顾了一下,就顺便看了几道D题。现在做CF的D题在比赛时还是做不出来。但是赛后往往都可以自己做出来。据说D题能在比赛中稳出的话就可以区域赛银了。于是争取以后CF能稳出4道题吧。 这道题刚开始不该看标签的。。给的是DP。。于是就一直朝着DP方向想。但是感觉不像是DP。就换了个思路,就做原创 2015-02-20 20:04:03 · 1089 阅读 · 0 评论 -
Codeforces Round #297 (Div. 2) E题. Anya and Cubes (中途相遇法)
题目地址:Anya and Cubes 比赛的时候居然没想起中途相遇法。。。这题也是属于想起来就很简单系列。 中途相遇法也叫折半搜索。就是处理前一半,把结果储存起来,再处理后一半,然后匹配前一半存储的结果。 代码如下:#include <iostream> #include <string.h> #include <math.h> #include <queue> #include <algo原创 2015-03-27 21:12:08 · 1329 阅读 · 0 评论 -
Codeforces Round #297 (Div. 2) D题. Arthur and Walls(BFS)
题目地址:Arthur and Walls 这题有一个脑洞,对于当前的点(i,j)并且此点为”*”来说,若存在包含它的2*2正方形中除了它自己外,另外三个点都是”.”,那么这个点就必须要变成”.”。由于去掉这个点之后会对周围的8个点造成影响,所以可以用BFS去搜。WA第12组的应该是只考虑了会影响到周围的4个点了。 代码如下:#include <iostream> #include <strin原创 2015-03-28 10:36:18 · 1371 阅读 · 0 评论 -
FZU 2041 Checker (贪心+模拟)
题目地址: FZU 2041 这个题是昨天的队内选拔赛用的套题里的其中一道题,我当时想到方法了,但是没敢写。。一个是对复杂度有些不确定,万一组数很多的话好像就会跪。。而且感觉不太好实现,队里还卡着两道题,就打算等别的该出的题出了之后再写,结果没时间了。。 刚才按照那思路写了一下。。结果就过了。。。我&……%¥%**……%% 思路是先枚举每个空隙,原创 2015-03-30 20:40:28 · 876 阅读 · 0 评论 -
(福大2015年3月月赛)FZU 2185 树的路径覆盖 (DFS)
题目地址:FZU 2185 允许重复覆盖的值比较好求,一条路径覆盖两个叶子节点,所以答案是(叶子结点数+1)/2。至于不允许重复覆盖的,我第一次想的是叶子节点数-1,因为先让第一条覆盖两个叶子结点,后面的每条覆盖一个,但是显然作为渣渣的我太native了。 很显然,当所有叶子节点都指向一个节点的时候肯定不是,这时候可以一条路径覆盖两个叶子节点。原创 2015-03-24 21:11:17 · 985 阅读 · 0 评论 -
(白书训练计划)UVa 11054 Wine trading in Gergovia(等价转换)
题目地址:UVa 11054 很巧妙的一道题,这题是利用的等价转换,对每一条路来说,假如右边生产的比左边的多x,那么不管起点是哪,终点是哪,都可以把左右两侧的看成两个点,要从这条路上运送x个劳动力。再由于总和是0,所以只需要算出一端的总和就可以,这样只要遍历一遍就可以算出来了。写出代码就很简单了。。。 代码如下: #include #include #include #include原创 2014-09-03 22:25:57 · 993 阅读 · 0 评论 -
(白书训练计划)UVa 1605 Building for UN(构造法)
题目地址:UVa 1605 一道答案特判的题。最简单的方法是只构造两层,第一层中第i行全是i国家,第二层中第i列全是i国家。这样就保证了所有的国家都会相邻。 代码如下: #include #include #include #include #include #include #include #include #include #include #include u原创 2014-09-03 19:24:30 · 1429 阅读 · 0 评论 -
codeforces #262 DIV2 B题 Little Dima and Equation
题目地址:http://codeforces.com/contest/460/problem/B 这题乍一看没思路,但是仔细分析下会发现,s(x)是一个从1到81的数,无论x是多少。所以可以枚举1到81,这样就转化成了一个一元一次方程,直接求解x就可以了。这时候还要判断x是否在1到10^9之间,并且它的各位数之和是s(x)。 这题脑残了两次。。。第一次是写成了 代码如下: #include原创 2014-08-21 02:06:04 · 2598 阅读 · 3 评论 -
(白书训练计划)UVa 11134 Fabled Rooks(贪心)
题目地址:UVa 11134 这题因为行与列是无关的,互无影响的。所以可以将行或列分开来计算。这就相当于转化成了在期间[1,n]内选择n个不同的整数,使得第i个整数在闭区间[Li,Ri]内。这就转换成了一个贪心问题了。但是注意不能先按照左端点排序,再按右端点排序,然后尽量往左边放,比如,(1,1),(1,3),(2,2),这样是不对的,应该按右端点为主关键字排序,再按左端点为次关键字排序。看到网原创 2014-09-05 10:25:33 · 3758 阅读 · 4 评论 -
codeforces #262 DIV2 C题Present(二分+贪心)
题目地址:http://codeforces.com/contest/460/problem/C 这个题是用二分枚举最小值,然后判断能否在规定的次数内使得所有的数都达到这个值。判断的时候要用贪心的方法判断,从左往右遍历,这时候需要让每次浇花的范围尽量向右。所以当到达一个不得不浇花的地方时,要继续占用所需要的浇花次数。当浇花次数不够用的时候,就说明无法达到。 在我的代码中,c数组是记录当前到了该原创 2014-08-21 02:16:59 · 2417 阅读 · 0 评论 -
HDU 4923 (杭电多校 #6 1003题)Room and Moor(公式+栈)
题目地址:HDU 4923 比赛的时候脑残了。。思路完全想出来了。。只不过想出了个根本不可能存在的极端数据,然后一看输入数据是100组,就把自己给否决了。。。sad。。当时就应该大胆试一试的。。。 这个题首先可以把最前面的0和最后面的1去掉,因为这两块总可以用0和1抵消掉。然后中间就分成了10相间的抢矿,然后根据10相间,可以分成若干组,每一组都是由几个1和几个0组成的。比如说11011011原创 2014-08-08 08:30:02 · 1272 阅读 · 0 评论 -
(白书训练计划)UVa 12627 Erratic Expansion(递归+找规律)
题目地址:UVa 12627 这题是先找规律,规律在于对于第k个小时的来说,总是可以分成右下角全是蓝色气球,右上角,左下角与左上角三个一模一样的k-1个小时的气球。这样的话,规律就很清晰了,然后用递归做比较方便。。。 代码如下: #include #include #include #include #include #include #include #include #i原创 2014-09-06 14:57:05 · 1117 阅读 · 0 评论 -
HDU 4937 (杭电多校 #7 1003题)Lucky Number(瞎搞)
题目地址:HDU 4937 多校的题以后得重视起来。。。每道题都错好多次。。。很考察细节。比如这道。。。。WA了无数次。。。。 这题的思路自己真心想不到。。。这题是将进制后的数分别是1位,2位,3位和更多位的分开来计算。 当是1位的时候,显然只有3到6,此时只能是-1 当是2位的时候,可以转换成一元一次方程求解 当是3位的时候,可以转换成一元二次方程求解 当是4位的时候,此时最多也只有原创 2014-08-14 23:44:12 · 948 阅读 · 0 评论 -
codeforces #433C Ryouko's Memory Note(瞎搞)
题目地址:http://codeforces.com/problemset/problem/433/C 这题实在没什么思路,思路是从网上看的。智商不能暴露太多。。。 这题的思路是把每一个数的与之相邻的保存下来,为了方便,可以用vector数组。然后为了使得距离之和最短,要取中位数。在一串数字中,距所有数字距离之和最短的就是中位数了,这点应该很好理解。然后把该值修改为该中位数,然后最后找出能使值原创 2014-09-10 19:35:59 · 1007 阅读 · 0 评论 -
codeforces #261 C题 Pashmak and Buses(瞎搞)
题目地址:http://codeforces.com/contest/459/problem/C C. Pashmak and Buses time limit per test 1 second memory limit per test 256 megabytes input standard input output standard原创 2014-08-16 02:22:56 · 3191 阅读 · 0 评论 -
HDU 4968(杭电多校#9 1009题)Improving the GPA (瞎搞)
题目地址:HDU 4968 这题的做法是所有学科的学分情况枚举,然后判断在这种情况下是否会符合平均分。直接暴力枚举即可。 代码如下: #include #include #include #include using namespace std; int main() { int t, n, a, i, tot, j, k, h, i1, j1, k1, h1, i2, j2原创 2014-08-19 18:30:38 · 1619 阅读 · 12 评论 -
HDU 4961(杭电多校#9 1002题)Boring Sum(瞎搞)
题目地址:HDU 4961 看来这题的测试数据是随机的。不然出了极限数据还真过不了。。。这题我的方法是建一个哈希结构体,记录两个变量,分别是num位置,然后是f,f==0表示这个数没出现过,f==1表示这个数出现过。然后分别从前面和后面扫一遍。每次扫的时候,对每一个出现的数都进行标记。然后对当前的数枚举该数的倍数,全部枚举完,取位置num最大的。然后找完之后,对哈希结构体进行更新。如果前面曾经出原创 2014-08-19 18:38:48 · 1232 阅读 · 0 评论 -
HDU 5000 Clone(瞎搞)
题目地址:HDU 5000 这个题当时有过这种想法,就是所有满足的情况的属性和是一定的。但是不会求方案数。。(太弱。。。)而且当时也很不确定猜测是否正确。。所以就放下了。。。算是通过学习了下dp求方案数吧。 至于那个猜测,我也给不出证明,但是个人觉得是只有在和都是相等的时候,才可以通过某一个数的增减来始终保持至少有一个较大的,至少有一个较小的,而假如和不一样的话,就会产生其中一个会消灭另一个的原创 2014-09-13 21:01:54 · 1332 阅读 · 0 评论 -
Codeforces Round #306 (Div. 2) D.E. 解题报告
D题:Regular Bridge 乱搞。构造 这题乱搞一下就行了。构造一个有桥而且每个点的度数都为k的无向图。方法很多,也不好叙述。。 代码如下:#include <cstdio> #include <cstring> #include <cmath> #include <queue> #include <stack> #include <map> #include <algorithm>原创 2015-06-10 17:27:03 · 1045 阅读 · 0 评论