自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sb的博客

不进则退

  • 博客(11)
  • 收藏
  • 关注

原创 BZOJ 3679: 数字之积

<1e9的乘积的状态并不多 所以直接用map写个dfs的数位dp#include <iostream> #include <algorithm> #include <sstream> #include <string> #include <queue> #include <cstdio> #include <map> #include <set> #include <utility> #inclu

2018-03-31 15:03:19 254

原创 BZOJ 3251: 树上三角形

https://www.lydsy.com/JudgeOnline/problem.php?id=3251考虑到一个序列如果不能组成三角形那么一定是fib序列 fib增长得很快并且值域只有1e9 那么50个一定有解 暴力跑路径 大于50个直接跳出循环就可以了 需要注意的是判断时候要用上LL#include <iostream> #include <algorithm> #include <

2018-03-31 12:32:09 148

原创 51nod 1436 方程的解数

https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1436 大概就是一个按位分析k再加上快速幂就可以了 #include &lt;iostream&gt; #include &lt;algorithm&gt; #include &lt;sstream&gt; #include &lt;string&gt; #inc...

2018-03-31 11:45:34 191

原创 51nod 1486 大大走格子

容斥把(h,w)看成黑格子 先按偏序对黑格子排序然后对每个黑格子算出到不经过前面每个黑格子的方案数 最后的到(h,w)黑格子的方案数就是答案因为对于每个方案数 都减去了前面不能走的方案 (另外,题目根本没说只能往右往下,还以为是插头什么的)#include <iostream> #include <algorithm> #include <sstream> #include <string>

2018-03-31 10:39:44 190

原创 Codeforces 955C - Sad powers

http://codeforces.com/problemset/problem/955/C假设p=2 那么底数范围是1~1e9 假设p>=3 那么底数范围是1~1e6 并且后面的数的power会递增得越来越快 所以可以考虑O(nlogn)预处理出p为奇数时的x 然后加上p为偶数时的x就是答案很明显p为偶数时是某个的平方 所以注意筛选#include <iostream> #include

2018-03-30 14:11:14 520

原创 True Liars POJ - 1417

题意: 有p1个好人,p2个坏人 好人只说真话 坏人只说谎话 给出n句某个人说某个人是真人还是坏人 问是否存在好人和坏人方案的唯一解 有的话则升序输出好人先用一个带权并查集维护一个联通块内的关系 然后dp[i][j]表示前i个联通块内有j个好人的方案 因为是唯一解 所以输出方案的时候倒过来推就可以了#include <iostream> #include <algorithm> #i

2018-03-30 09:25:29 278

原创 CS Academy Round #74 (Div. 2 only) A B C D E

A找出有多少独角兽因为范围很小 所以枚举即可 int a,l,h; sddd(a,l,h); for(int i=0;i<=a;++i) { int leg = l - i*4; int ho = h - i; if(ho&1)continue; if(ho*2>leg)continue;

2018-03-29 16:20:16 200 2

原创 Painting the balls SGU - 183

定义 dp[i][j] 表示最后一个在位置i 倒数第二个在j时候的代价 这个复杂度是O(n*m*m)的 所以需要优化转移的时候是枚举ijk 三个点 优化实际上就是固定了中间那个点j 移动最后面的点i 往前移动i的同时用f[j][i-m]更新最小值 同时这个最小值也能更新新的f[i][j]优化后的复杂度为O(n*m)#include <iostream> #include <algorit

2018-03-28 21:08:06 438

原创 Damn Couples ZOJ - 3161

考虑一串相邻的关系 设f[i]为有i个人的时候最多剩下的人 那么转移就为 f[ i ] = max( f[ i ] , min ( f[ i-j ] + f[ j-1 ] , f[ i-j-1 ] + f[ j ])( j< i ) 右边的min表示两个人其中一个人走掉的最坏情况然后把关系分成一段段连续的处理就行了 需要注意给出的序号并不是有序的这是我自己的写法 把连续的一段减少的算出来

2018-03-28 13:59:48 469

原创 Prince and Princess UVA - 10635

找出两个序列的最长公共子序列因为每个序列中每个数只出现一次 所以可以先记录每个数字在第一个序列中出现的位置 再把第二个序列的数字换成这个数字在第一个序列中出现的位置 这样求一个最长上升子序列就是答案#include <iostream> #include <algorithm> #include <sstream> #include <string> #include <queue> #inc

2018-03-28 12:51:28 202

原创 SGU 143 Long Live the Queen

求一棵树上的联通子图使得其所有节点权值和最大树形dp dp[u]表示这个结点为根的最大权联通子图 转移为dp[u] = val[u] + sum( max(0,dp[v]) ) 假如选儿子节点的贡献为负则不选#include <iostream> #include <algorithm> #include <sstream> #include <string> #include <queue>

2018-03-27 12:59:29 170

空空如也

空空如也

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

TA关注的人

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