自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(77)
  • 资源 (1)
  • 收藏
  • 关注

原创 HDU - 4704 Sum——费马小定理

ans=2^(n-1)%mod = 2^((n-1)%(mod-1)+(n-1)/(mod-1)*(mod-1))%mod=2^((n-1)%(mod-1))%mod*2^((n-1)/(mod-1)*(mod-1))%mod=2^((n-1)%(mod-1))%mod对于(n-1)%(mod-1),可以先算出n%(mod-1),那么(n-1)%(mod-1) = (n%(mod-1)-1+(mo...

2018-03-30 15:45:18 216

原创 UVA - 11280 Flying to Fredericton——spfa

用二维的dis【i】【j】表示遍历到点i且经过的点数为j时的最短路,求解经过点数不超过x的最短路时遍历dis【n】【1—x+2】就可以了#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <string>#inclu...

2018-03-30 14:22:57 175

原创 URAL - 1098 Questions——约瑟夫环

#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 1e5;char s[maxn];int dp[maxn];int main() { int n = 0;...

2018-03-27 16:36:07 380

原创 LA 3882 And Then There Was One——约瑟夫环

http://www.bubuko.com/infodetail-842619.html#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 1e4 + 10;int dp...

2018-03-27 16:24:43 232

原创 UVA - 10617 Again Palindrome——dp

求一个字符串有多少回文子串(可以不连续)区间dp的无后效性思想,lcs的状态转移方程。。。。。。定义dp【i】【j】为区间【i,j】的回文子串的数量s【i】!=s【j】,dp【i】【j】 = dp【i+1】【j】+dp【i】【j-1】-dp【i+1】【j-1】s【i】==s【j】,dp【i】【j】=dp【i+1】【j】+dp【i】【j-1】+1感觉是从逻辑上推的状态转移方程,这方面还是不熟练#in...

2018-03-27 00:41:16 198

原创 UVA 12099 The Bookcase——dp

和poj3124一模一样https://blog.csdn.net/hao_zong_yin/article/details/79692770#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const ...

2018-03-26 11:05:19 262

原创 HDU 1423 Greatest Common Increasing Subsequence——dp

zoj2432的简化版,但是这道题忘了说输出结果两两之间一个空格,导致pe了一发顺便用了滚动数组优化一下#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 510;con...

2018-03-26 11:02:43 218

原创 ZOJ 2432 Greatest Common Increasing Subsequence——dp

可以在状态转移时压缩一下路径,这样打印时就不需要判重了注意结果为0时只输出0,这点很坑#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;typedef pair<int, int> P;co...

2018-03-26 11:00:39 198

原创 POJ 3124 The Bookcase——dp

很好的一道背包题,思路这篇博客写的很好https://blog.csdn.net/wings_of_liberty/article/details/7522213然而写完了发现居然2900s!!!,卡边过对于强迫症来说是致命的,不过也好优化,在上面思路的基础上记录维护一下宽度的前缀和,dp时和宽度极限值做一个min就好了,成功优化到1500s#include <cstdio>#inc...

2018-03-26 01:13:43 269

原创 UVA 1336 Fixing the Great Wall——dp

从紫书前面做过来的话就知道是老思路了,额外加个累计数组就好,另外精度卡的不是很严格,写起来可以随意一些#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 1010;con...

2018-03-23 16:51:20 267

原创 UVA 10934 Dropping water balloons——dp

惊了,竟然有1e64这个数据,题目骗人啊。。。。。。用cin的小伙伴们注意下一,cin是不能读1e64的(会直接终止输入),scanf读1e64会爆掉变成9223372036854775807,这个数据对题目结果没有影响,因此用scanf就行了,总之这道题并不是很严谨#include <cstdio>#include <cstring>#include <iost...

2018-03-23 14:44:43 196

原创 UVA 1627 Team them up!——dp

第三遍,顺利1A#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <vector>using namespace std;typedef pair<int, int> P;const int max...

2018-03-23 13:44:41 210

原创 POJ 2449 Remmarguts' Date——k短路

模板题,内存卡的很严,动不动就MLE,出现MLE就要考虑减少STL的使用,例如用边表代替vector,用spfa代替dijkstra(因为spfa的queue手写起来方便,而dijkstra的优先队列写起来麻烦),另外注意检查优先队列维护的序是否正确,这一点很重要,因为维护错了必定MLE#include <cstdio>#include <cstring>#includ...

2018-03-20 22:52:57 216

原创 PTA 最小生成树的唯一性——次小生成树

先dfs一遍求一下连通块的个数,连通块为1的情况下求出最小生成树和次小生成树,判断两者是否相等#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <vector>using namespace std;const ...

2018-03-20 10:50:55 1273 1

原创 UVA 1412 Fund Management——dp

思路不难,但是写起来真恶心,一定要注意模块化#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <string>#include <map>using namespace std;const int ...

2018-03-16 18:31:09 248

原创 UVA 1252 Twenty Questions——dp

做这道题深刻意识到自己智商不够。。。。。。A和B正在玩这个游戏,B拿着一个物品清单(每个物品有S个特征)随机选了一件(设为X)让A猜,然后A就开始问,每问一次就能确定X的一个特征,问A最少问多少次可以猜出X是哪一个物品。A每次问的时候无非就是选择一个没问过的特征k,然后根据B的答案确定X是否具有特征k,基于这一点我们可以定义状态,用dp【i】【j】表示当前问过的特征集合为i,已确定物品X具有的特征...

2018-03-15 22:57:03 289

原创 UVA 10817 Headmaster's Headache——dp

刷表状压,没什么特别的#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int INF = 0x3f3f3f3f;const int maxn = (1<<16)+10;int...

2018-03-14 22:31:08 198

原创 UVA 1218 Perfect Service——dp

一开始题目没读好,各种错误定义,所以提醒大家做题之前一定要认真读题。。。。。。加上读错题浪费的时间,这题一共做了两个小时,一开始我以为这是两遍dfs综合考虑父树子树状态的题目,但进行了一些尝试后我发现只用子树状态就可以完成这道题目然后是找有用的状态,这个不是很难想,最基本的状态就是一个点是建服务器还是不建服务器,我们用黑点表示建服务器,白点表示不建服务器,考虑题目的限制,一个状态至少要包含树中的两...

2018-03-13 22:29:36 184

原创 UVA 1220 Party at Hali-Bula——dp

紫书P282讲得很明白#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <string>#include <vector>#include <map>using namespace st

2018-03-13 19:51:01 214

原创 UVA 12186 Another Crisis——dp

水题#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <vector>#include <cmath>using namespace std;const int maxn = 1e5 + 10;...

2018-03-13 18:03:21 191

原创 UVA 1626 Brackets sequence——dp

印象中第5遍了。。。。。。换行卡的挺严,嗯#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 200;const int INF = 0x3f3f3f3f;int T;...

2018-03-13 13:28:26 182

原创 UVA 10003 Cutting Sticks——四边形不等式优化dp

不能用单调队列做的原因是切割点固定很明显小区间的权值小于大区间,交错区间的权值等于两区间的交加上两区间的并,权值满足区间包含的单调性,状态满足四边形不等式性质,所以第三重循环可以优化,设s【i】【j】为区间【i,j】的最优切割点,那么求解dp【i】【j】时只需要遍历s【i】【j-1】~s【i+1】【j】即可,复杂度为n^2#include <cstdio>#include <c...

2018-03-13 11:40:04 453

转载 四边形不等式优化dp

原文链接今天第一次学习四边形不等式优化dp,感觉优化效果十分给力,不过数学味道比较浓重,证明比较复杂。因此这里删繁就简,给出关于四边形不等式优化必须要明白的地方,以后直接套用条件即可。四边形不等式优化条件在动态规划中,经常遇到形如下式的转台转移方程:m(i,j)=min{m(i,k-1),m(k,j)}+w(i,j)(i≤k≤j)(min也可以改为max)上述的m(i,j)表示区间[i,j]上的某...

2018-03-13 11:08:09 268

原创 POJ 1651 Multiplication Puzzle——dp

类似于最优矩阵链乘的区间dp,定义dp[i][j]为区间【i,j】的元素除了头尾都被拿走这个状态下的最小总和,边界就是长度为2的区间初始化为0,这样转移方程就很好写了#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace...

2018-03-13 10:28:26 176

原创 UVA 1625 Color Length——dp

类似于LCS的递推方法,状态的定义和转移包括辅助数组都不难想, 但是细节很多,比如说一个字符的开始和终止要综合考虑两个串,以及对于只在一个串中出现的字符的考虑等等,细节参考代码#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using name...

2018-03-12 22:37:51 176

原创 UVA 11584 Partitioning by Palindromes——dp

n^2预处理一下a【i】【j】是否为回文串,处理的方法比较笨,分奇偶写的。。。剩下的dp思路很好想,不多说了#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 1010;...

2018-03-12 20:52:35 173

原创 UVA 11400 Lighting System Design——dp

类似于LIS的递推,难在一个不等式的证明,这一点这篇博客写的很好,极力推荐点击打开链接#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 1010;const int I...

2018-03-12 19:45:49 159

原创 UVA 12563 Jin Ge Jin Qu hao——01背包

t的范围是个幌子,因为他不会超过时间的总和,然后就是简单的01背包了#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 180*50+678+5;const int IN...

2018-03-12 09:23:27 169

原创 UVA 116 Unidirectional TSP——dp

简单递推#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 110;const int INF = 0x3f3f3f3f;int m, n, a[maxn][maxn]...

2018-03-11 22:48:44 189

原创 UVA 1347 Tour——dp

一开始以为是TSP,一看紫书n最大为1000,就直接断了这个念头,其实稍微一想就发现这个题固定了起点终点,所以不是TSP问题。回到正题,这个题的特点是有两条线路,一条往一条反,完全可以看成两条从起点到终点的线路,我们设这两条线路为A B,定义dp【i】【j】为:A走到第i个点,B走到第j个点,且max(i,j)的点都被访问这个状态下的最下路程(很明显这个这样定义是没有后效性的),那么最终结果就是在...

2018-03-11 21:37:12 222

原创 UVA 437 The Tower of Babylon——dp

建n*3个节点的DAG记忆化搜索一下就可以了,水题#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 100;int kase = 1, n, G[maxn][maxn]...

2018-03-11 16:05:19 174

原创 UVA 1025 A Spy in the Metro——dp

记得当时刚做dp时这道题死活做不出来,现在重新做一遍,也算是消除心理阴影了经过推理,我们发现当前时刻、当前车站构成了一个状态,而做哪一班车去下一个车站与状态转移密切相关,因此我们定义dp【i】【j】表示间谍在时刻i位于车站j的最小等待时间(进一步思考会发现递推时间时没有后效性的,所以这个状态时正确的),结果就是dp【T】【N】。在上面状态的基础上我们考虑状态转移,首先确定一点就是每辆车到达每个车站...

2018-03-11 15:23:31 167

原创 HDU 2665 Kth number——主席树

这题和POJ 2104有着不可描述的关系,切完2104后顺便把这个切了#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 1e5 + 10;int n, m, cnt;...

2018-03-10 15:49:22 134

原创 POJ 2104 K-th Number——主席树

一开始分块搞过了,但后来ac代码交上去TLE,怀疑是加强数据或者当时是运气过的,于是学了主席树,推荐这篇博客http://blog.csdn.net/creatorx/article/details/75446472#include <cstdio>#include <cstring>#include <iostream>#include <algo...

2018-03-10 15:46:35 181

原创 UVA 11136 Hoax or what——multiset

#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <set>using namespace std;int main() { int n, k, x; while (~scanf("%d", &a..

2018-03-09 15:14:08 223

原创 UVA 10883 Supermean——二项式系数

很容易就能与二项式系数关联起来,但是中间结果用double都会溢出,因此可以取log,最后把结果进行指数运算就可以了,最后注意一下输入正负的问题#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>#include <cmath>usi...

2018-03-09 14:49:45 249

原创 UVA 11038 How Many O's?——整数区间分解

#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>typedef long long ll;ll solve (ll num) { if (num < 0) return 0; ll ans = 1, left = num...

2018-03-09 14:38:47 213

原创 UVA 11461 Square Numbers——前缀和水题

#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 1e6+10;bool vis[maxn];int dp[maxn];int main() { memse...

2018-03-09 14:14:16 205

原创 UVA 11489 Integer Game——博弈

#include <cstdio>#include <cstring>#include <iostream>#include <algorithm>using namespace std;const int maxn = 1005;char s[maxn];int T, n;int main() { //freopen("ou...

2018-03-09 14:07:53 224

原创 UVA 11971 Polygon——连续概率

一开始真没想到,紫书的做法很巧妙,首先确定本题的答案与n无关,然后把直线首尾相连形成一个圆,问题就转化成了在圆上随机选k+1个点。现在考虑组不成多边形的概率,仔细想一想会发现当其中一个小木条至少跨越半个圆周时组不成多边形,所以我们针对这种情况求其概率,我们先选一个点i,点i与圆心连接起来的直线将圆划分成两部分,这两部分设为A 和 B,除了点i之外其余个点位于A的概率均为1/2,总概率为(1/2)^...

2018-03-08 22:40:18 215

Qt游戏编程——飞机大战

游戏模板,大家可以随意添加自己的元素

2017-07-06

空空如也

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

TA关注的人

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