自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(83)
  • 收藏
  • 关注

转载 hdu 5346 MZL's game dp

2015 Multi-University Training Contest 5 1004当时全场没有队伍通过的一道题,此题状态构造的甚是巧妙题意:n个人,每次从存活的人中等概率选出一个人去攻击场上其他人,被攻击者存活的概率相等 且由题目给出,选出的人出局。求一个人被攻击k次之后出局(被选出来攻击其他人后出局,受到攻击死亡不算出局)的概率。思路:出题人的想法是先把这个问题转...

2015-08-04 23:19:00 93

转载 hdu 4288 线段树 + 离散化

题意:求一个动态的非递减序列中,下标 mod 5 == 3的元素和,可以向序列中添加和删除某些元素,且序列的单调性不变。保证在任意时间 序列中不会存在两个相同元素。保证输入合法思路:保证在任意时间 序列中不会存在两个相同元素,也就说明如果将所有的值都插入序列中,每个值对应的位置是唯一的。所以将操作的值先保存下来,离散化处理出每个值对应的位置。离散化后,我们得到一个新的数列 uni_n...

2015-07-29 20:57:00 98

转载 hdu 3577 线段树

题意:一列经过1000000个站点的火车上最多同时乘坐 K 个人,有 Q 个乘客按照题目给出的顺序去买票,输出所有购票成功的乘客做法:RMQ线段树 + 区间更新 1 #include "bits/stdc++.h" 2 using namespace std; 3 #define lson l, m, rt<<1 4 #define rson ...

2015-07-29 17:03:00 89

转载 hdu 5316 Magician 线段树

2015Multi-UniversityTrainingContest3 1001 1 #include "bits/stdc++.h" 2 using namespace std; 3 #define M 100010 4 #define lson l,m,rt<<1 5 #define rson m+1,r,rt<<...

2015-07-28 20:16:00 114

转载 POJ3468 本来是一道线段树

// 然而博主用 Splay Tree 做的,4000+ ms。。。飘过 1 #include "cstdio" 2 using namespace std; 3 long long in[100010]; 4 const int INF = 1 << 28; 5 6 struct Node { 7 Node *pre,...

2015-07-24 22:37:00 70

转载 hdu 3183 st表

// 题意:从长度为 N 的字符串中删除 M 个字符,使得生成的新串的字典序最小// 思路:反向构造 1 #include "bits/stdc++.h" 2 using namespace std; 3 const int MAXN = 100010; 4 int n; 5 char ans[MAXN]; 6 int Min[MAXN][20], Max...

2015-07-21 20:45:00 82

转载 hdu 5285 BestCoder Round #48 ($) 1002 种类并查集

// M == 0 有trick... N < 2 也有trick...... 1 #include"iostream" 2 #include"cstdio" 3 #include"cstring" 4 #include"map" 5 using namespace std; 6 int N, M; 7 int rt[100010], ...

2015-07-18 21:49:00 72

转载 hdu 5282 序列计数

// 统计 s1 的子序列中是 s1 和 s2 的最长公共子序列的个数 1 #include "bits/stdc++.h" 2 using namespace std; 3 int T; 4 char s1[1010], s2[1010]; 5 int dp[1010][1010]; 6 long long Count[1010][1010]; 7 co...

2015-07-17 21:41:00 98

转载 zoj 2432 模板LCIS

输出一条 LCIS 1 #include "bits/stdc++.h" 2 using namespace std; 3 int T; 4 int len1, len2; 5 int s1[510], s2[510]; 6 int dp[510][510]; 7 int choice[510][510]; 8 9 10 int main()...

2015-07-17 20:29:00 181

转载 hdu 1052 贪心

// 判断出(田忌)的必胜局面和必败局面,则可以容易的得到决策方案// 若没有明显的必胜局面和必败局面,则使用田忌赛马的策略 1 #include "bits/stdc++.h" 2 using namespace std; 3 int N; 4 int v1[1010], v2[1010]; 5 6 int main() 7 { 8 w...

2015-07-17 16:46:00 61

转载 hdu 4568 bfs + 状压dp

//这题的数据是不是有问题... 不考虑宝藏一个也拿不到也能AC... 1 #include "bits/stdc++.h" 2 using namespace std; 3 const int INF = 0x3f3f3f3f; 4 int T; 5 int N, M; 6 int mat[210][210]; 7 int K; 8 ...

2015-07-17 14:50:00 88

转载 hdu 3182 状压dp

1 #include "bits/stdc++.h" 2 using namespace std; 3 int T; 4 5 int dp[40000]; 6 int totene[40000]; 7 8 int N, E; 9 int val[20], ene[20], cond[20];10 11 const int INF =...

2015-07-16 17:23:00 72

转载 hdu 1074 状压dp

//2015.7.16 首A 1 #include "bits/stdc++.h" 2 using namespace std; 3 int T; 4 int N; 5 char subject[20][110]; 6 int deadline[20], spend[20]; 7 int dp[40000], choice[40000], tot_spen...

2015-07-16 15:18:00 73

转载 闭关静修一段时间_(:з」∠)_

//暂停更新一段时间转载于:https://www.cnblogs.com/AC-Phoenix/p/4508456.html

2015-05-16 19:29:00 137

转载 woj 1575 - Signal generators 单调队列优化dp + 瞎搞

戳这里:1575题意:直线上排列着N个信号发射器,每个信号发射器被激活后将会使得影响范围内的所有发射器都被激活。询问激活任意一个发射器后被激活的发射器数最大是多少。官方题解:可能会存在环的情况,考虑按坐标排序后i < j < k,j激活了k,然后k再激活i。但是这样可以转化为直接激活k的方案。所以无影响。 于是可以用dp求解。dp[i] = max( dp[j] + ...

2015-05-08 21:51:00 150

转载 woj 1574 - K-th smallest 分治

戳这里:1574题意:从一个长度为n的数字里去掉任意一个数字,求第k大的数字为多少。官方题解:去掉Ri后剩下的数字,显然要么比去掉任意的Rj(j > i)的方案大,要么比去掉任意的Rj小。 所以先从后向前扫一遍预处理出去掉Ri后是比后面的都大还是都小。 然后分治之。whu邀请赛的 A 题,当时没想出来解法,看了题解写了一下一发就 AC 了...... 1 #in...

2015-05-08 21:17:00 104

转载 UESTC 594 我要长高 dp单调队列

//戳这里:594//补一发之前的单调队列 dp 1 #include "bits/stdc++.h" 2 using namespace std; 3 int N, C; 4 int h[50010]; 5 6 int dp[50010][110]; 7 struct Queue 8 { 9 int value;10 }q[11...

2015-05-08 15:55:00 78

转载 HDU 3401 Trade dp 单调队列优化

戳这里:3401题意:给出第i 天的股票买卖价格(APi,BPi),以及每天股票买卖的数量上限(ASi,BSi),要求任两次交易需要间隔 W 天以上,即第 i 天交易,第 i + W + 1 天才能再交易,求最多能赚多少钱思路:dp[i][j] = max(dp[i - 1][j], max(dp[f][k] - (j - k) * APi[i]), max(dp[f][k] ...

2015-05-08 11:28:00 87

转载 HDU 2844 Coins 多重背包

戳这里:2844//复习一下背包问题//题意:告知你 N 中硬币的面值和数量,求能组成多少不同的面额,面额限制在区间 [1, M] 中//思路:用背包覆盖一边,取硬币的空间为它自身的价值,则当 dp[i] == i 时,说明空间为 i 的背包背填满,即可以组成面额为 i 的情况 1 #include "bits/stdc++.h" 2 using names...

2015-05-07 20:18:00 55

转载 HDU 4054 Hexadecimal View 模拟

戳这里:HDU 4054//复习一下 cin.getline() 的用法 1 #include "bits/stdc++.h" 2 using namespace std; 3 char str[5000]; 4 5 char Change(char c) 6 { 7 if('A' <= c && c <= 'Z'...

2015-05-04 00:26:00 91

转载 HDU 4034 Graph Floyd变形

戳这里:HDU 4034//思路:根据题意可得,若 mat[i][j] > mat[i][k] + mat[k][j] 则无解;若mat[i][j] == mat[i][k] + mat[k][j] 且分别对应 i->j i->k k->j 的三条有向边,则可以删掉i->j 有向边使得原来 i 到 j 的最短路径不发生变化; 那么我们将输入的邻接...

2015-05-04 00:22:00 80

转载 HDU 4020 Ads Proposal 离线操作

戳这里:HDU 4020//为方便处理输入信息而对其进行 排序 预处理,算是经典的离线操作方法了 1 #include "bits/stdc++.h" 2 using namespace std; 3 int T, N, M, Q; 4 struct Ads 5 { 6 int U, C, L, Final_Rank; 7 }ads[50001...

2015-05-04 00:03:00 77

转载 HDU 4004 The Frog's Games 二分 贪心

戳这里:HDU 4004//思路:二分经典入门题...贪心判方案是否可行 1 #include "bits/stdc++.h" 2 using namespace std; 3 int L, n, m; 4 int pos[500010], dis[500010]; 5 6 bool Cant(int Dis_Jump) 7 { 8 in...

2015-05-03 23:57:00 110

转载 HDU 4001 To Miss Our Children Time dp

戳这里:HDU 4001//题意:有三种积木,第0种只能放在长和宽都严格小于它的积木上,第1种 只能放在长和宽都小于等于它 且 面积小于它的积木上,第2种 只能放在长和宽都小于等于它的积木上,dp求积木的最高高度。 1 #include "bits/stdc++.h" 2 using namespace std; 3 int n; 4 struct Block...

2015-05-03 23:53:00 77

转载 UESTC 594 我要长高 dp单调队列优化入门

//其实是个伪单调队列...渣渣刚入门//戳这里:594//dp[ i ][ j(现身高) ] = min( dp[ i ][ k(现身高) ] + fabs( j(现身高) - k(现身高) ) * C + ( j(现身高) - h[i](原身高) ) *( j(现身高) - h[i](原身高) ) );观察到可以单调队列优化,O(N * H * H) ...

2015-04-29 20:48:00 98

转载 poj 1328 贪心

//赶紧写一道题解假装我在训练......//题意:x轴以上分配着一些点,给定圆的半径,求最少需要圆的个数去将这些点全部覆盖掉。//分析:裸贪心,对于一个点在x轴上存在一个区间,要保证这个区间上必须存放雷达(一个圆的圆心)才能保证这个点被覆盖掉。//做法:优先考虑右端最靠左的区间,我们在这个区间上放置雷达点时,越往右影响到的区间数就有可能增加,不可能减少。于是我们就将雷达放到...

2015-04-25 23:37:00 56

转载 hdu1403 后缀数组入门题

//1403思路:字符串的任何一个子串都是这个字符串的某个后缀的前缀,则求A和B的最长公共子串等价于求A的后缀和B的后缀的最长公共前缀的最大值。做法:将第二个字符串写在第一个字符串后面,中间用一个没有出现过的字符隔开,再求这个新的字符串的后缀数组。 1 #include "bits/stdc++.h" 2 using namespace std; 3 const ...

2015-04-24 23:35:00 89

转载 1588: [HNOI2002]营业额统计 splay tree

//http://www.lydsy.com/JudgeOnline/problem.php?id=1588//题意:每读入一个数,在前面输入的数中找到一个与该数相差最小的一个,把所有的差值绝对值加起来并输出 1 #include "bits/stdc++.h" 2 using namespace std; 3 const int maxn = 100010;...

2015-04-15 20:37:00 87

转载 hdu 3407 String-Matching Automata dfa

//3407//题意:给一段字符串,由状态转换图画出状态转换表 1 #include "bits/stdc++.h" 2 using namespace std; 3 char str[10010]; 4 struct DfaNode { 5 char ch; 6 int son, next, father, suffix;...

2015-04-14 20:14:00 86

转载 hdu3555 Bomb 数位dp

//3555//题意:统计 1 到 n 中包含 49 的数的个数 1 #include "bits\stdc++.h" 2 using namespace std; 3 __int64 dp[22][3]; 4 5 int main() 6 { 7 int i; 8 dp[0][0] = 1; 9 for(i = 1;...

2015-04-14 18:05:00 99

转载 3.29 练习赛

//比赛时的代码感觉写得真心难看......Orz,还有一堆低级错误贴出来晒晒吧Problem A CodeForces 329A Purification2A 1 #include "bits/stdc++.h" 2 using namespace std; 3 char mat[110][110]; 4 int n; 5 int ro...

2015-03-29 20:22:00 90

转载 Codeforces 523C - Name Quest 手速题

//还是too young,因为没初始化len_name, len_str wa了一发 1 #include "bits\stdc++.h" 2 using namespace std; 3 char name[1010], str[1000010]; 4 5 int main() 6 { 7 scanf("%s %s", name, str);...

2015-03-28 21:02:00 101

转载 Codeforces 523B - Mean Requests 英语阅读题

1 #include "bits\stdc++.h" 2 using namespace std; 3 int n, T; 4 double c; 5 int ans[200010]; 6 7 int m, p; 8 9 int main()10 {11 scanf("%d%d%lf", &n, &T, &a...

2015-03-28 20:36:00 96

转载 Codeforces 523A - Rotate, Flip and Zoom 手速题

1 #include "bits/stdc++.h" 2 using namespace std; 3 char mat[110][110]; 4 int m, n; 5 6 int main() 7 { 8 scanf("%d%d", &m, &n); 9 int i, j;10 for(i = ...

2015-03-28 19:27:00 104

转载 Codeforce 522C - Chicken or Fish? 模拟

//思路:因为题目是要求求出所有可能被选完的 dish,所以当之前乘客所选 dish 不确定时,将所有 dish 的数量均减一(做法是记录下来不确定的 dish 的数量);当出现第一个顾客 QAQ(不开心) 的时候,说明在他之前至少有一个 dish 已经被选完了,这时候就需要利用不确定的 dish 的数量优先构造出一个被选完的 dish(注意到之后被选择的 dish 一定不能再此刻...

2015-03-27 23:10:00 264

转载 CodeForces 522D 树状数组

//戳这里:522D思路:为了简化问题我们先确定区间的右端,则需要先从右端最靠左的区间开始处理;处理某个区间时,我们将元素从 1 的位置处理到这个区间的右端(得到每个元素在其右侧最近相同元素的距离),然后只需要从这个区间的左端遍历到右端就能得到这个区间内的解。如果熟悉树状数组性质的话可以方便的把这个 O(n) 的遍历过程,优化成O(logn)。//PS:用线段树代码貌似会长很多....

2015-03-18 15:35:00 123

转载 CodeForces 522B 手速题

//戳这里:522B//Problem tags 上竟然有人贴 data structures...保存最大的两个 h[i] 不就好了么...... 1 #include "iostream" 2 #include "cstdio" 3 using namespace std; 4 int n, w[200010], h[200010], sw, h1, h1_p...

2015-03-12 20:31:00 94

转载 CodeForces 522A 手速题

//戳这里:522A 1 #include "iostream" 2 #include "cstdio" 3 #include "cstring" 4 #include "algorithm" 5 #include "map" 6 using namespace std; 7 int n; 8 map<string, int> dp;...

2015-03-12 20:09:00 85

转载 CodeForces 520D 又见贪心

戳这里:520D//贪心的做法比较明显:取出方格中的数从左往右排列形成一个 m 进制的数,前者想要数最大,则每次取符合条件的最大的数,后者想要数最小,则每次取符合条件的最小的数。//做法也比较暴力:在整个剩余的数形成的集合中两人每次贪心取数,那么就相当于是对剩余的数形成的集合进行搜索,考虑到极端情况:集合里面有很多数,但是只有一个可以取,这时通过加强集合元素的条件(是剩余的数 &...

2015-03-12 18:15:00 75

转载 CodeForces 521D nice贪心

//521D//有三种升级技能的策略:1、=; 2、+=;3、*=。最优的升级顺序显然是先使用策略1,再策略2,再策略3//赋值变加(对于每一种技能只考虑增益最大的赋值操作),加变乘(对于每一种技能优先考虑增益最大的加法),在不超过总升级方案的前提下,排序后选出 m 种所乘系数最大的升级方案。因为再原方案都是乘法方案的情况下,先乘哪个数并不会影响最终结果,所以只需要再将 m 种方...

2015-03-08 17:06:00 96

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除