自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

GameRoad

立志做一名懂美术的程序员O(∩_∩)O

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

原创 It's All In The Mind HDU - 5742

题意: 让要求的a1+a2  /sum最大思路; 让后面的小。前面的大。。#include #include #include #include #include #include using namespace std;int a[105];struct node{ int id,num; bool friend operator <(node a,n

2017-07-31 16:18:07 238

原创 Keep On Movin HDU - 5744

题意:若干个字母,形成回文串。询问回文串 最短长度最大。思路:先将2的个数提取出来,考虑奇数个数,平分#include #include #include #include #include #include using namespace std;int a[100005];typedef long long ll;bool judge(ll k,ll od

2017-07-31 15:43:23 188

原创 HDU-3062-Party(2-SAT)

中文题。思路:两种: 一种是kuangbin的两层dfs写法(我竟然wa了之后怀疑bin神板子。。T_T,最后发现自己智障点写错了)。没毛病,可以套。。#include#include#include#include#includeusing namespace std;const int maxn=1000005;struct node{ int v,next

2017-07-30 11:16:34 268

原创 HDU-3622 Bomb Game

题意:放炸弹,每组炸弹有两个,必须使用其中一枚。多个炸弹爆破范围不可重叠。询问得分为-最小的爆炸半径。问得分最高思路;2-sat跑图,二分爆炸半径,用2-sat判别是否可以成立。#include#include#include#include#includeusing namespace std;const int maxn=205;const double eps=

2017-07-30 09:51:03 315

原创 专用网络对外开发!阿里云ECS!深坑!

阿里云现在没有之前的经典网络了,要买的话我这边好像只能选专用网络。。然而视频还是教的经典网络。根本没有外网入 ,外网出这个端口。。小白都比我白。。。觉得被视频诱拐了。。下面转一下如何解决的!实测有效!网上好多说法。。不能说都有用。反正这个对我有用。。跟着那个视频做,会发现自己无法点进去自己的http+公网ip ,就是因为专用网络和经典网络的事情。要开一个80/80端口!

2017-07-29 21:14:07 3329

原创 HDU 5724 Chess (状压+sg)

题意:给出n行,每行20列,放上若干个棋子,每个棋子只能移动到其右侧第一个空位,不能移动的lost思路:对于每行,有2^20种状态,虽然不多,但是存不下,因此要用位来压,1对于每行来说,因为行是一个子问题,无法再次拆解,因此直接对于行来打sg函数的表。记录每个子问题的答案,异或便是最终答案#include#includeusing namespace std;const

2017-07-29 11:20:04 230

原创 hdu3980Paint Chain(SG)

题意:有n个珠子,每次必须涂色m个连续的。这 n个珠子是个环。询问胜负情况思路:对于是个环的情况,我们可以首先拿出一组m,如果n这样环就转变为了链结构,对于一条链,sg[ i因此转变为了 对于i>m的情况下, 如果从中拿出m个连续珠子。子问题是: 假如在j处取这m个珠子, 左侧 j,右侧 i-m-j#include #include #define N 2

2017-07-28 19:11:33 377

原创 HDU 1847 Good Luck in CET-4 Everybody!(SG)

思路: 学了学SG,模板题#include #include #define N 20const int MAXN=1005;int f[N],SG[MAXN],S[MAXN];//f[N]:可改变当前状态的方式,N为方式的种类,f[N]要在getSG之前先预处理//SG[]:0~n的SG函数值//S[]:为x后继状态的集合void getSG(int n){ i

2017-07-28 16:59:08 223

原创 hdu 6055 Regular polygon

题意: 给出若干个点,找到有多少个正多边形思路:构造了下,发现在整数点上似乎没有找到除了正四边形之外的正多边形。那么就枚举一下就好了!#include #include #include #include #include using namespace std;struct node { int x, y; bool friend operator

2017-07-28 13:26:56 249

原创 hdu 6045 Is Derek lying?

题意:对于第一个人来说,是否满足条件中 如果第一个人得到X分,那么第二个人得到Y分。思路:先判断不同答案的个数。如果相同答案的个数是小于最小的一个人的得分,就需要使用不同的答案来补全,补全的时候注意:如果不同的个数可以同时补全两个人就YES否则NO如果相同答案的个数是大于等于最小的一个人的得分,就判断最多的得分和最小得分的差值,用不同的答案补全最多的人的得分#inc

2017-07-28 13:25:07 292

原创 hdu 6047 Maximum Sequence

题意:把b数组中 b[i]~n放到a[i+n]的位置思路: 区间最值查#include #include #include #include using namespace std;const int maxn= 250005*2;const int inf=0x3f3f3f3f;int a[maxn];int b[maxn];const int mod=10

2017-07-27 19:20:07 305

原创 有趣的异或

描述这是一个有趣的题,给你n个数,聪明的大家都知道从中挑出k个数的方案数是多少?(ps:当然不会考你这么简单的题)。现在我们按照如下规则产生A(k):1.从n个数中挑出k个数2.将这k个数作异或运算(S=a1^a2^..ak)3.将每一种可能的方案产生的S求和输入多组测试数据,以EOF结束程序。每组测试数据第一行包含一个数n(1 第二行包含n

2017-07-27 11:42:50 280

原创 HDU 6040 Hints of sd0061

题意:调用n次给出的函数,之后找第k小的数字,数据量到1e7,sort会t.因此可以简化sort(每次快排分治的位置如果是k就跳出)。这个想法有现成的函数nth_element。思路:具体的功能是 (start, start+n ,end)。把第n大的位置放在数组的n号位置。之后从后往前扫,因为这样可以简化end的位置,加快速度,否则会TLE。#includeusing na

2017-07-27 11:39:50 343

原创 HDU-6035 Colorful Tree(dfs序造树)

题意;每条路径的权值是:路径上经过的不同颜色节点的个数。询问各个点互达后的路径权值总和思路: 看了小半天才看懂。。。首先解释下官方题解的意思。对于所求的问题,可以转化为每种颜色对于答案可以贡献多少次值(颜色i对于在所有路径中出现了几次)。颜色i贡献次数=所有路径-路径中未出现颜色i的路径条数。之后把所有的颜色i相加即可。代码中;siz表示以当前节点为根,子树大小

2017-07-26 16:05:40 883 3

原创 Necklace HDU - 5727 (二分图)

题意: 给出n个yang珠子n个yin珠子。给出抵消的编号询问排成环,最少可以形成个被抵消的yang珠子思路:枚举yang珠子在yin珠子排列的可能。一次求出不抵消的匹配 数,那么抵消的=n-不抵消的#include #include #include #include #include using namespace std;const int maxn=

2017-07-25 19:46:28 230

原创 Island of Survival LightOJ - 1265

题意:生存冒险,老虎和老虎遇见双送双死。。     老虎和鹿碰到 鹿死     人和鹿碰上,鹿可以死。可以活     人和老虎碰上,人死    鹿鹿遇见无伤亡询问人最后活下来的期望思路:在奇数个老虎的时候,必定会有一只老虎存活,人必死。 当有偶数只老虎时候只需要让这些老虎互相碰面,而人不与老虎碰面即可。自己推的时候,公式推错了。。无需考虑鹿。 只需要考虑人与

2017-07-23 19:09:47 432

原创 LightOJ 1248 Dice (III)

题意:假设一个骰子有n个面,询问经过多次后可以使得每个面都朝上过一次。求步骤的期望思路:很类似于LightOJ 1038Race to 1 Again对于还未投时,任何一面都未出现过,因此 ans  +1 之后对于有n个面的骰子来说在出现第i个未出现的面的时候:利用等比求和,可以的 1/(1-(i-1)/n)分子的减法在n

2017-07-23 19:04:12 262

原创 LightOJ 1104 Birthday Paradox

题意: 生日悖论,在365天的情况下,只要有22个人就会有其中两个人生日相同的概率为0.5询问在别的星球,假设n天是一年的情况下,至少多少个人,才可以使得其中两个人生日相同的概率为0.5思路:首先,在365天的情况下,22个人生日,其中没有两个人生日“不”相同的概率为365/365 *364/365  * 363/365....那么逆着退回来。假设有i个人,是的生日不同

2017-07-23 18:48:30 272

原创 LightOJ 1079 Just another Robbery &&HDU 2955 Robberies 01背包

题意:抢劫银行!!!每个银行都有那么几块钱。并且总是有被抓住的风险型。询问在风险性小于p的前提下,可以最多抢到多少钱思路:dp[i]保存的是在抢劫i块钱的情况下,最大的安全概率。dp[0]=1这样在递推时候 就可以得到dp[j]= dp[j-val] *(1-w) 表示在dp[j-val]转移的安全的条件下,此步仍然安全的概率。之后从后向前找在安全的概率下最大钱数即

2017-07-23 18:43:14 186

原创 LightOJ 1038 Race to 1 Again

题意:给出初始值x,询问经过若干步骤后可以使其变为1, 每次除的数字必定是x的因子。询问除法操作步骤的期望值思路:因为可以除1,使其仍然为x,可以经过无限步骤,很类似于LightOJ 1027A Dangerous Maze来推公式。。。。假设 数字x变为1步骤的期望为Px , 其中 1,n1 n2 n3..x 为他的因子。共有n个因

2017-07-23 18:33:06 238

原创 Discovering Gold LightOJ - 1030

题意:共有n个点,每个点有权值, 必定从第一个点出发,到第n个点结束。询问经过历经上权值的期望。 其中每次跳转的步骤在1~6之间思路:记录下 dp[i]表示到达第i个点的概率。之后概率乘以权值#include #include #include using namespace std;int n;const int maxn=1005;int a[maxn];doub

2017-07-23 18:22:26 278

原创 LightOJ 1027 A Dangerous Maze

题意:两种门,第一个是出去,第二个是回到原点,每次选择的概率均相同。询问出去需要多少时间。思路:假设P是出去所用时间的期望值。共有n个门,其中n1个是出去的门,n2个是返回原点的门。sum1是n1个门的时间和, sum2是n2个返回原点的门的时间和。 P= (1/n) * sum1   (当前步骤下出去的期望) + (1/n) (sum2 + n2p) (当前步骤走回原点)

2017-07-23 18:19:29 195

原创 hdu 1848 Fibonacci again and again(SG)

模板题。具体  http://blog.csdn.net/luomingjun12315/article/details/45555495#include #include #define N 20const int MAXN=1005;int f[N],SG[MAXN],S[MAXN];//f[N]:可改变当前状态的方式,N为方式的种类,f[N]要在getSG之前先预处理/

2017-07-22 19:56:48 199

原创 hdu 5726 GCD (区间gcd-RMQ)

题意:给定区间l~r,询问子区间中有多少个gcd与 这个区间gcd相等思路:rmq可以快速处理出l~r区间的gcd,区间gcd是一个收敛很快的非单调递增的,可以用二分处理出各个gcd的个数,之后再一次输出#include using namespace std;typedef long long ll;int n;const int maxn=100010;int dp[ma

2017-07-22 16:54:31 366

原创 HDU5869 Different GCD Subarray Query(离线线段树)

题意:找l~r区间中各个字串构成的gcd ,有多少种思路:可以分离处区间中有多少不同数字,这可以用离线的线段树方式处理。也就是按r端点排序,从左向右,使得值尽可能的往右靠。处理gcd的方法可以从左向右推,区间gcd的收敛程度很高,暴力即可。还有一个问题是在于保存gcd的时候,一定要使其(是从哪个l 推出来的, 这个l尽可能的靠近r)只有这样才能保证在离线处理时,不出错!#i

2017-07-22 11:50:51 286

原创 hdu 5723 Abandoned country

题意: 求最短代价,以及任意两点距离期望思路;代价: 最小生成树。期望:  以边为单位,边所用的次数是 左右断点度数*w#include #include #include #include using namespace std;const int maxn=5000005;struct node{ int u,v,w; bool o

2017-07-21 18:51:13 221

原创 Count on a tree SPOJ - COT (LCA+主席树)

题意:在树上找到u->v的第K大思路:root[a]+root[b]-root[lca(a,b)]-root[fa[lca(a,b)]]上的第k大,具体说下代码,先找LCA(这里是用树链剖分的思想求的LCA),之后每一个树的节点,都维护一棵子树, 这两棵树不属于同一类,因此用不同的标号来记录 #includeusing namespace std; const in

2017-07-21 17:13:47 351

原创 URAL 1553 Caves and Tunnels(树链剖分-点更新-区间最值查)

题意:操作1.点权+w操作2.查询u->v点这条路径最大值#pragma comment(linker, "/STACK:102400000,102400000")#include #include #include #include using namespace std;const int inf=0x3f3f3f3f;const int maxn = 100005

2017-07-21 14:47:16 223

原创 SPOJ QTREE Query on a tree(树链剖分-点更新-区间最值查询-入边)

题意:操作1.更改第i条边权值操作2.查询i->j的路径最大值操作3 跳出#include #include #include #include using namespace std;const int maxn = 100005;int dep[maxn],siz[maxn],fa[maxn],id[maxn],son[maxn],val[maxn],top[ma

2017-07-21 14:23:26 231

原创 HDU 5919 Sequence II (主席树,不同元素个数+第K大)

题意:看别人写的题意没看懂。。建议去看题,提示写的很明白。大体意思是,找到处理过后的l~r区间中, 假设不同元素个数为k , 则就找l~r中的  --- 不同元素的脚标,从小到大排序后   ---第(k+1)/2个元素思路:倒序方式来处理n个数字,得到K个不同数字(主席树类型题模板),再从中拿第k个元素(此时和第k大元素处理方法相同,只不过第k大元素模板题是排序,去重过后,此题直接

2017-07-21 13:09:40 278

原创 D-query SPOJ - DQUERY (主席树找区间不同元素个数)

思路:建立主席树,从后到前,如果有就将其拿到前面#include #include #include #include using namespace std;const int maxn=200005;struct node{ int lc,rc,num;} tree[maxn*40];int cnt,rnu,now;int a[maxn];int num[

2017-07-21 10:23:40 348

原创 HDU 5920 Ugly Problem

题意: 拆解成小于等于50个回文串思路:从中间分割,使得左右对称,字符串做-法#include #include #include using namespace std;char a[10005];char b[10005];char c[10005];char ans[55][10005];int all=0; int flag=0;

2017-07-21 08:50:09 242

原创 SPOJ DQUERY D-query(离线线段树,查区间不同数字个数)

题意: 找区间不同数字思路:先把所有操作记录下来,之后按查询的右端点排序,如果数字存在update -1 否则udpate+1#include #include #include #include using namespace std;const int maxn=300005;struct node{ int l,r,sum;} tree[maxn*4]

2017-07-19 16:05:25 1544

原创 Feed the dogs POJ - 2761 (主席树第K大)

题意:找l~r第k大的数#include #include #include #include using namespace std;const int maxn=100001;int a[maxn];int root[maxn*20];struct node{ int lc,rc,num;}tree[maxn*20];int cnt,rnu,now,num

2017-07-19 15:33:39 285

原创 HDU-3727 Jewel(查询第K大是几,以及数字是第几大)

题意:插入操作1查询 S~T 第K是几2查询 X是当前的第几小3操作当前第K小是几思路:建立主席树 ,三种基本操作#include #include #include #include #include using namespace std;struct node{ int lc,rc,num;} tree[2000010];int

2017-07-19 11:28:48 332

原创 hdu-4417-Super Mario(无修改的主席树-求小于等于k的个数)

题意:找出给出区间内小于等于 k的个数思路;建立主席树,查找时,如果j树的 最大值都小于k,直接求和,否则分步求和。也可以用离线的线段树做,觉得线段树更好想一些#include#include#include#includeusing namespace std;const int maxn=100010;struct node{ int l,lc,rc,

2017-07-18 15:39:58 507

原创 hdu-4348-To the moon(主席树更新,区间更新,区间和查询,保存历史版本返回)

题意:给出指定的多种操作,询问每步结果思路;主席树来保存每一步的版本,在求值时调用相应的记录。区间更新,区间和查询#include#include#include#define clr(x) memset(x,0,sizeof(x))#define LL long longusing namespace std;struct segtree{ int lt,r

2017-07-18 11:19:01 395

原创 hdu4417- Super Mario(离线,线段树)

询问;给定区间中所有小于h的数字个数。思路:http://www.cnblogs.com/kuangbin/archive/2012/09/23/2699122.html离线线段树之后,可以边更新,边查询。代码思路很简单,感觉这一手倒向更新太赞了。#include#include#include#include#include#include#include#includ

2017-07-17 17:25:08 287

原创 POJ 2104 K-th Number(可持久化线段树-求第K大)

思路:建立一个可持续化线段树,每次用一个新节点,接收其新的状态。先维护出一个从小到大,无重复的线段树。之后每次插入都是一个新的节点,(网上有图)。代码网上学的 #include#include#include#includeusing namespace std;const int maxn=100010;struct node{ int lc,rc,l,r,num,

2017-07-17 16:19:37 401

原创 CD操作 HDU - 4547 (LCA-离线tarjan)

思路:按之前的思路每次查询都重新搜,发现TLE了,之后查了一下离线tarjan,是将所有的查询都先输入后,一次性处理,这样就达到了O (n+m)的复杂度#include#include#include#include#include#includeusing namespace std;const int maxn= 200005;int fa[maxn];int

2017-07-17 09:06:19 289

空空如也

空空如也

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

TA关注的人

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