经典题目
多A几道题就好
一名学生
展开
-
POJ 3579 Median
传送门题目大意是给你一串数字序列,问你这些在序列中所有数字的差的第M/2小的数是多少。M是差值的总数。直接二分答案,然后再二分搜就行了代码#include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #define LL __int64 using namespace std; const int maxn =原创 2016-08-03 15:44:37 · 205 阅读 · 0 评论 -
POJ 3254 Corn Fields(状态压缩) DP入门
题目链接这题一开始看到真的没思路,想了半天,一直在找怎么判断上下两行的判断方法,其实预先处理一下就行了,只要想到预先处理,就应该是到怎么做了,真的是笨。而且我写的时候真的是没耐性,没仔细想想就去搜题解了,下次一定要多思考思考。代码#include <cstdio> #include <cstring> #include <algorithm> #include <iostream> #define原创 2016-07-31 21:53:42 · 265 阅读 · 0 评论 -
HDU 1421 搬寝室
题目链接这道题我认为很好,虽然难想。题意是给你N个物品的重量,你每次搬两个,搬K次,没次搬的体力消耗是两个物体重量的绝对值差的平方,问怎么搬体力最小,输出最小消耗的体力。这道题我首先想到的是贪心,但是贪心显然不好贪,我无法证明把物品从小到大排序后每相邻的两个的绝对值差是最小的。所以我们得用动规的思想,想一想,要想解决搬K次物品体力消耗最小,那我第K-1次是不是也要体力消耗最小,同时,从K-1次转移到原创 2016-07-30 17:05:20 · 220 阅读 · 0 评论 -
Codeforces Round #365 (Div. 2) Mishka and trip
传送门题意就是一些城市,全部连起来,但是其中有些城市是首都,首都要和其他所有城市连接起来,每个城市有个美丽值,每条路的权值为所连接两个城市的美丽值的乘积。答案要求你求出所有路的权值总和。首先先加首都的路,标记,然后再补其他路。代码如下#include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #define L原创 2016-08-05 10:21:22 · 206 阅读 · 0 评论 -
HDU 3756 Dome of Circus (三分)
传送门题意很简单,就是给你N个三维坐标,要你求一个三菱锥把所有点罩进去,在边边也行,要你求出满足条件的最小体积的三菱锥的高H和底面半径R很简单三分就行了但是这题我自己当时过得很惨烈,我写搓了,结果靠交来测答案。先是我写搓的代码,给巨巨们引以为戒#include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #def原创 2016-08-05 21:49:33 · 200 阅读 · 0 评论 -
HDU 5791 Two
题目链接多校的一道DP水题 题意大概是给你A和B两个数字序列,要你求A序列和B序列不同子序列相同的个数。 输入A序列的长度N和B序列的长度M 比如 1 1 1 1 他的答案应该是 5一般动规题就是找出状态和状态转移方程 这题状态好找,就是dp[A序列的前i个元素][B序列的前j个元素]但是怎么转移呢?首先考虑A[i]不等于B[j]的情况,不等于的话,由容斥原理可知道 dp[i][j]原创 2016-08-02 20:54:16 · 222 阅读 · 0 评论 -
POJ 3735 Training little cats (矩阵快速幂)
传送门题目大意是给你K串命令和N只猫,问执行M次后每只猫的状况 其中 s 命令是交换两只猫的花生 g 命令是一只猫拿一个花生 e 命令是一只猫吃完他的花生我们很明显用矩阵快速幂来做这道题只不过会有一些细节问题,就是数组要用long long 来存,因为程序中没有mod来取余,还有就是可能矩阵中会有很多0,所以时间需要优化,毕竟最大100*100的矩阵相乘是O(n*n*n)复杂度。代码如下#原创 2016-08-06 19:33:25 · 252 阅读 · 0 评论 -
CodeForces 148D Bag of mice (经典概率dp)
传送门我写的比较搓,是用来自己参考的,各位大佬们 我是从这位巨巨的博客上看到思路的 真的对我理解dp很有帮助 巨巨的传送门题目大意(copy的 ^) 原来袋子里有w只白鼠和b只黑鼠 龙和王妃轮流从袋子里抓老鼠。谁先抓到白色老鼠谁就赢。 王妃每次只抓一只老鼠,但是龙每次抓完一只老鼠之后会有一只老鼠跑出来。 每次抓老鼠和跑出来的老鼠都是随机的。 如果两个人都没有抓到白色老鼠则龙赢。王妃先原创 2016-08-06 22:13:55 · 234 阅读 · 0 评论 -
HDU 5806 NanoApe Loves Sequence Ⅱ (尺取法)
尺取法题目大意是给你一串数列,问你数列中某个区间的第K大的数大于M的区间个数有多少个。把数组写下来仔细想一想,为了简化问题,大于K的数我们是不是可以把它变成1,反之为0。这样子的话,我们就能用尺取法。就是如果一个区间的数值和大于等于K的话,之后的数都可以加进来。所以尺取法下见代码#include <cstdio> #include <cstring> #include <algorithm> #in原创 2016-08-07 11:15:32 · 239 阅读 · 0 评论