自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TaoSama's Microcosm

本博客不再更新,新博客地址: http://taosama.github.io

  • 博客(458)
  • 资源 (1)
  • 收藏
  • 关注

原创 Codeforces Round #334 D. Moodular Arithmetic(置换)

题意: 给定3≤p≤106的prime,0≤k≤p−1,求满足给定3 \leq p \leq 10^6的prime, 0 \leq k \leq p-1, 求满足 f(kx mod p)≡kf(x) mod pf(kx\ mod\ p) \equiv k f(x)\ mod\ p f:{0,1,2,...,p−1}→{0,1,2,...,p−1}f:\{0, 1, 2, ..., p

2015-12-03 03:12:59 328

原创 Codeforces Round #334 C. Alternative Thinking (dp)

题意: 给定一个长度为105的01序列,现要求翻转一个非空子串,就是串内0变1,1变0,求最长交替01子序列的长度,比如01010或者10101,就是5给定一个长度为10^5的01序列, 现要求翻转一个非空子串, 就是串内0变1, 1变0, 求最长交替01子序列的长度, 比如01010或者10101, 就是5分析: 这题可以找规律贪心,我直接xjb dp的这题可以找规律贪心, 我直接xjb

2015-12-03 02:59:56 349

原创 Codeforces Round #334 B. More Cowbell (二分 + 贪心)

题意: k个箱子装n个物品(n≤2∗k≤105),每个箱子最多装2个物品,求最小的满足要求的箱子的体积k个箱子装n个物品 (n \leq 2 * k \leq 10 ^ 5), 每个箱子最多装2个物品, 求最小的满足要求的箱子的体积分析: 小的能装大的也可以装,满足单调性可以二分,check的时候贪心一下,肯定是一大一小装才最好嘛,注意边界小的能装大的也可以装, 满足单调性可以二分, ch

2015-12-03 02:48:40 288

原创 Codeforces Round #333 D. Lipshitz Sequence (单调栈)

题意: 求一个序列的所有子序列的L(h)的和求一个序列的所有子序列的L(h)的和分析: 我们可以把序列中所有的元素两两连边,我们发现相邻的两个元素一定是最大斜率贡献者之一,也就是L(h)我们可以把序列中所有的元素两两连边, 我们发现相邻的两个元素一定是最大斜率贡献者之一, 也就是L(h) 然后我们用单调栈维护相邻元素差值作为最大值,左右能维护到的距离Li,Ri然后我们用单调栈维护相邻

2015-11-30 02:50:23 417

原创 Codeforces Round #333 E. Kleofáš and the n-thlon (期望dp)

题意: 有n<=100场比赛,每场比赛有m<=1000个人参加,每场比赛都会排名次,得分即为名次有n<=100场比赛,每场比赛有m<=1000个人参加,每场比赛都会排名次,得分即为名次 比赛比完了,某个人只记得自己的名次,其他的人不记得,求出这个人排名的期望值比赛比完了,某个人只记得自己的名次, 其他的人不记得, 求出这个人排名的期望值分析: −−思路很奇妙,我们肯定不能直接求排名的

2015-11-30 02:40:13 661

原创 HDU 3065 病毒侵袭持续中(ac自动机)

题意: 求多模式串中每个模式串出现的次数求多模式串中每个模式串出现的次数分析: 开个id数组记录下就好啦开个id数组记录下就好啦代码://// Created by TaoSama on 2015-11-27// Copyright (c) 2015 TaoSama. All rights reserved.////#pragma comment(linker, "/STAC

2015-11-29 00:10:44 474

原创 HDU 2896 病毒侵袭(ac自动机)

题意: 求多模式串匹配,并且输出每个模式串出现的次数,以及所有模式串出现的总次数求多模式串匹配, 并且输出每个模式串出现的次数, 以及所有模式串出现的总次数分析: 再开个数组记录下id就好啦,然后trie是128叉的再开个数组记录下id就好啦, 然后trie是128叉的代码://// Created by TaoSama on 2015-11-27// Copyright (c)

2015-11-29 00:08:46 253

原创 HDU 5587 Array (规律)

题意: 话说中文题目里有hint看hint就懂了话说中文题目里有hint看hint就懂了 第一项永远为数字1,因此样例1输出1第一项永远为数字1,因此样例1输出1 第二天先复制一次,用0隔开,得到1,0,1,再把产生的数字加1,得到1,1,2,因此样例2输出前3项和1+1+2=4.第二天先复制一次,用0隔开,得到{1,0,1},再把产生的数字加1,得到{1,1,2},因此样例2输出前

2015-11-28 23:47:04 344

原创 HDU 5586 Sum (dp)

题意: 给定N<=105的序列,可以选一个区间或者不选,将数字变为f(x)=(1890x+143)mod10007,求序列的最大和给定N<=10^5的序列, 可以选一个区间或者不选, 将数字变为f(x)=(1890x+143)mod10007, 求序列的最大和分析: dp, 考虑dp[i][0/1][0/1]前i项,变还是不变这个数,序列是否已经有数变过,的最大和dp,\ 考虑dp[i][

2015-11-28 23:43:47 252

原创 LightOJ 1064 - Throwing Dice (dp)

题意: 给定n<25个骰子,求总和至少为x<=150的概率,分数输出给定n<25个骰子, 求总和至少为x<=150的概率,分数输出分析: 直接算概率比较麻烦,应该是我不会−−,然后直接求方法数就好了直接算概率比较麻烦, 应该是我不会 - -, 然后直接求方法数就好了 考虑dp[i][j]:=i个骰子和为j的方法数考虑dp[i][j]:=i个骰子和为j的方法数 ans=∑i>=x

2015-11-26 07:16:40 306

原创 HDU 4005 The war(tarjan bcc + dp)

题意: N<=105,M<=105的无向图,现在有可能在任意位置新建一条边,我们要删掉一条边使得图不连通,求最小花费N<=10^5,M<=10^5的无向图, 现在有可能在任意位置新建一条边, 我们要删掉一条边使得图不连通, 求最小花费分析: bcc肯定不能删边,所以先bcc缩点成DAG,树边都是桥都可以删除,但是怎么删除呢−−懒得说了,别人写的挺清楚的bcc肯定不能删边, 所以先bcc缩点

2015-11-25 04:11:01 333

原创 HDU 4203 Doubloon Game(博弈打表)

题意: S<=109个金币,K<=100,双方每人每次只能拿Kx个金币,x是非负整数,不能拿者输,求赢的话最少拿的金币,输的话输出0S<=10^9个金币, K<=100, 双方每人每次只能拿K^x个金币, x是非负整数,不能拿者输, 求赢的话最少拿的金币, 输的话输出0分析: 数据这么大显然让你打表找规律了,先暴力一下,发现很有规律数据这么大显然让你打表找规律了, 先暴力一下, 发现很有规

2015-11-25 04:01:12 355

原创 HDU 3590 PP and QQ(树上删边游戏 + anti-sg)

题意: N<=100颗树,每棵数有m<=100个点,双方每次可以选择一条边删去,并且把不与根相连的边一并删去,不能操作者赢N<=100颗树,每棵数有m<=100个点,双方每次可以选择一条边删去,并且把不与根相连的边一并删去,不能操作者赢分析: 基本思路和树上删边游戏一致,不同的是anti−sg.基本思路和树上删边游戏一致, 不同的是anti-sg. 有结论:先手必胜当且仅当:有结论:

2015-11-25 03:39:51 415

原创 HDU 3094 A tree game(树上删边游戏)

题意: N<=105的一棵树,双方每次可以选择一条边删去,并且把不与根相连的边一并删去,不能操作者树N<=10^5的一棵树, 双方每次可以选择一条边删去, 并且把不与根相连的边一并删去, 不能操作者树分析: 有一个结论sgleaf=0,其他节点sgu=xor∑v(1+sgv)(v为u的儿子)有一个结论sg_{leaf}=0, 其他节点sg_u=xor\sum_v(1+sg_v) (v为u的

2015-11-25 03:32:01 434

原创 UVA 11691 Allergy Test(状压dp)

题意: 给出n<=20种病毒的潜伏期D<=7,每天只能注射一种病毒,也只能检测一次,只有体内有一种病毒的时候才能被检测出类型,求检测所有病毒需要的最短时间给出n<=20种病毒的潜伏期D<=7, 每天只能注射一种病毒, 也只能检测一次, 只有体内有一种病毒的时候才能被检测出类型, 求检测所有病毒需要的最短时间分析: 我们发现是否注入新的病毒跟之前的病毒有关系,需要知道何时注入新的我们发现是否

2015-11-24 02:54:30 400

原创 UVA 11721 Instant View of Big Bang(负环)

题意: n<=1000,m<=2000的有向图,无自环,无重边,求所有能到达负环的点集合,升序输出,不存在输出impossiblen<=1000, m<=2000的有向图, 无自环, 无重边, 求所有能到达负环的点集合, 升序输出, 不存在输出impossible分析: −−不知道为啥正向搜一直RE,把oj测爆了也没找到- - 不知道为啥正向搜一直RE, 把oj测爆了也没找到 考虑逆

2015-11-24 02:44:20 369

原创 UVA 11747 Heavy Cycle Edges(MST)

题意: 求图上所有环的重边的权,升序输出求图上所有环的重边的权, 升序输出分析: 考虑MST算法的正确性证明,比如Kruskal算法考虑MST算法的正确性证明, 比如Kruskal算法 在加边的过程中不会形成环,且加进去的边一定是可能构成的环中最大的边,正是题目所求在加边的过程中不会形成环, 且加进去的边一定是可能构成的环中最大的边, 正是题目所求代码://// Created

2015-11-24 02:39:26 341

原创 UVA 11775 Unique Story(LCS [LIS] + BIT)

题意: 求两个序列不相同的序列个数,n≤1000求两个序列不相同的序列个数, n \leq 1000分析: −−我直接正着搞,dp状态很显然,dp[i][j]:=以a[i],b[j]结尾的不相同的序列个数- - 我直接正着搞, dp状态很显然, dp[i][j]:=以a[i], b[j]结尾的不相同的序列个数 但事实上非常难转移,存在重复的情况,搞了昨晚一个晚上也没解决但事实上非常难

2015-11-23 23:23:58 269

原创 LightOJ 1068 - Investigation (数位dp)

题意: [l,r]区间,l,r∈[1,231)中本身能被k<104整除,且数位和也能被k整除的数的数目[l, r]区间, l, r \in [1, 2^{31})中本身能被k<10^4整除, 且数位和也能被k整除的数的数目分析: 乍一看以为空间炸了不可做,dp[i][k][k],但是发现−−数位和顶多就90不到,所以算的时候特判下就好了乍一看以为空间炸了不可做, dp[i][k][k],

2015-11-22 02:38:03 323

原创 HDU 1536 S-Nim(组合游戏Nim)

题意: 限定普通Nim每步拿的的个数,求当前状态是必胜还是必败限定普通Nim每步拿的的个数, 求当前状态是必胜还是必败分析: 求sg的时候改改就好了,−−为了这个vis数组我unordered_set都上了还是T,看了题解发现改成100就可以了,我表示。。。似懂非懂,谁有科学的解释求解答吧求sg的时候改改就好了, - - 为了这个vis数组我unordered\_set都上了还是T, 看了

2015-11-22 02:12:24 679

原创 HDU 4155 The Game of 31 (博弈)

题意: 1,2,3,4,5,6各有4张一共24张牌,2个人拿牌,要求牌的总和不能超过31,超过了不能拿,谁不能拿谁输1,2,3,4,5,6各有4张一共24张牌, 2个人拿牌, 要求牌的总和不能超过31, 超过了不能拿, 谁不能拿谁输分析: 博弈基本思想:博弈基本思想: 当前是必胜态,当且仅当有一个后继是必败态当前是必胜态, 当且仅当有一个后继是必败态 当前是必败态,当且仅当所有

2015-11-22 02:09:07 346

原创 POJ 3694 Network (tarjan bcc + LCA)

题意: 给定无向图,q次加边操作,问加边后还有多少个桥给定无向图, q次加边操作, 问加边后还有多少个桥分析: tarjan bcc来一发,求出初始桥数,并用并查集维护bcc内的点tarjan\ bcc来一发, 求出初始桥数, 并用并查集维护bcc内的点 相当于缩点了,隐式建图的是一个DAG,接下来只要加边就会形成环(bcc)相当于缩点了, 隐式建图的是一个DAG, 接下来只要加边就

2015-11-22 02:01:19 480

原创 HDU 2242 考研路茫茫 空调教室(tarjan bcc + tree dp)

题意: 去掉一条边使得图变为2个连通图,并且使得两个图的点权和的差值最小,求最小差值去掉一条边使得图变为2个连通图, 并且使得两个图的点权和的差值最小, 求最小差值分析: 先tarjan bcc缩点成为树,树边都是桥,肯定切树边,然后跑煞笔树形dp就好了,需要注意的是,图特么又有重边先tarjan\ bcc缩点成为DAG, 树边都是桥, 肯定切树边, 然后跑煞笔树形dp就好了, 需要注

2015-11-22 01:53:13 440

原创 POJ 3177 Redundant Paths (tarjan bcc)

题意: 无向图问最少添加多少条边使得图成为双连通的无向图问最少添加多少条边使得图成为双连通的分析: 显然先把图进行bcc缩点,添加新的边形成bcc显然先把图进行bcc缩点, 添加新的边形成bcc 显然应该选择距离最远的两个叶子节点,这样可以构成一个很大的环(bcc),合并这个bcc上的点,重复这个过程,直到整个图都成为1个bcc显然应该选择距离最远的两个叶子节点, 这样可以构成一个很

2015-11-22 01:47:47 324

原创 HDU 2767 Proving Equivalences (tarjan scc)

题意: 求给定的图最少需要添加多少条边,整个图是强联通的求给定的图最少需要添加多少条边, 整个图是强联通的分析: 分析强联通图的性质可知,所有点的入度和出度都至少为1分析强联通图的性质可知, 所有点的入度和出度都至少为1 如果要让此图连通,只要在scc缩点之后,对于新图中,求出根数(入度为0)和叶子数(出度为0),把根和叶子连起来,图就连通了如果要让此图连通, 只要在scc缩点之后,

2015-11-22 01:39:38 366

原创 HDU 1269 迷宫城堡 (tarjan scc)

题意: 判断给定的图是否是强联通的判断给定的图是否是强联通的分析: 坑,给定的图可能不是连通的坑, 给定的图可能不是连通的代码://// Created by TaoSama on 2015-11-21// Copyright (c) 2015 TaoSama. All rights reserved.////#pragma comment(linker, "/STACK:1

2015-11-22 01:30:29 311

原创 UVA 315 Network (tarjan cut)

题意: 求连通图中割点的个数求连通图中割点的个数分析: 模版题模版题代码://// Created by TaoSama on 2015-11-21// Copyright (c) 2015 TaoSama. All rights reserved.////#pragma comment(linker, "/STACK:1024000000,1024000000")#inc

2015-11-22 01:28:29 419

原创 LightOJ 1057 - Collecting Gold (状压dp)

题意: n∗m(n,m<20)的格子里有最多15个格子有金子,x是出发点,求出发并回来拿完金子的最短路程n*m(n,m<20)的格子里有最多15个格子有金子, x是出发点, 求出发并回来拿完金子的最短路程分析: 一开始dp[x][y][s]:=在(x,y)金子状态为s的最短路程,然后空间炸了一开始dp[x][y][s]:= 在(x,y)金子状态为s的最短路程, 然后空间炸了 然后就卡

2015-11-21 04:22:49 527

原创 LightOJ 1060 - nth Permutation (逆康托展开的思想)

题意: 求n<=20长度串的所有排列的按照字典序的第k个序列求n<=20长度串的所有排列的按照字典序的第k个序列分析: 总排列数f=n!/(cnta!∗cntb!∗⋯∗cntz!)总排列数f = n!/(cnt_a!*cnt_b!* \cdots *cnt_z!) 恢复序列的思想类似于逆康托展开恢复序列的思想类似于逆康托展开,点击这里代码://// Created by Tao

2015-11-21 04:17:05 534

原创 Codeforces #332 D. Spongebob and Squares (公式)

题意: n∗m矩形网格,给定x≤1018种正方形可能,问有多少种n∗m方案,按照字典序输出n*m矩形网格, 给定x\leq 10^{18}种正方形可能, 问有多少种n*m方案, 按照字典序输出分析: 我们发现n∗m的矩形网格有正方形可能是:我们发现n*m的矩形网格有正方形可能是: 假设n<=m,那么方法数为f=n∗m+(n−1)∗(m−1)+(n−2)∗(m−2)+⋯+1∗(m−(n

2015-11-21 03:30:10 412

原创 Codeforces #332 C. Day at the Beach (贪心)

题意: 求把一个序列分成最多个小序列之后,每个进行排序后,序列还是有序的求把一个序列分成最多个小序列之后, 每个进行排序后, 序列还是有序的分析: f[i]:=a1⋯ai的最大值f[i]:= a_1 \cdots a_i的最大值 g[i]:=ai⋯an的最小值g[i]:= a_i \cdots a_n的最小值 我们发现如果fi<=gi+1那么ai和之前截断的位置被分开的话,序列

2015-11-21 03:23:59 349

原创 Codeforces #332 B. Spongebob and Joke (思路)

题意: 给定长度为n的序列f,长度为m的序列b,且fai=b[i],求长度为m的序列给定长度为n的序列f, 长度为m的序列b, 且f_{a_i}=b[i], 求长度为m的序列 多解输出Ambiguity,无解输出Impossible,有解输出Possible和解多解输出Ambiguity, 无解输出Impossible, 有解输出Possible和解分析: 其实f中元素的位置记录一下

2015-11-21 03:15:37 469

原创 Codeforces #332 A. Laurenty and Shop (枚举)

题意: 房子s两个超市a,b;  l(s,a)=d1,l(s,a)=d2,l(a,b)=d3,求s到两个超市并回到s的最短距离房子s两个超市a, b;\ \ l(s, a)=d1, l(s, a)=d2, l(a, b)=d3, 求s到两个超市并回到s的最短距离分析: 一共4种情况,想清楚一共4种情况, 想清楚代码://// Created by TaoSama on 2015-11

2015-11-21 03:10:19 312

原创 LightOJ 1051 - Good or Bad (dp)

题意: 给定一个字符串,连续3个元音字母或者连续5个辅音字母为BAD,如果完全不BAD为GOOD,"?"可以是任意字母,如果都有可能是MIXED给定一个字符串, 连续3个元音字母或者连续5个辅音字母为BAD, 如果完全不BAD为GOOD, "?"可以是任意字母, 如果都有可能是MIXED分析: dp[i][j][k]:=第i个字母,连续j个元音或者连续k个辅音,的状态dp[i][j][k]

2015-11-20 17:00:19 431

原创 LightOJ 1050 - Marbles (概率dp)

题意: r<=500,b<=500个球,每回合我随机抽一个球,另一个人拿一个b球r<=500, b<=500个球, 每回合我随机抽一个球, 另一个人拿一个b球 如果他不能拿为他输,如果最后一个拿走是b球我赢,求我赢的概率如果他不能拿为他输, 如果最后一个拿走是b球我赢, 求我赢的概率分析: dp[r][b]:=当前状态我赢的概率,转移就我拿r球或者b球,很简单,注意边界情况dp[r]

2015-11-20 16:45:49 376

原创 2015 重庆市赛 解题报告

A. 蠕虫爬井题意: 初始在0,爬n高度的井,爬1分钟u距离,休息1分钟掉d距离,问几分钟出井?初始在0, 爬n高度的井, 爬1分钟u距离, 休息1分钟掉d距离, 问几分钟出井?分析: 如果d>=u,每次做无用功肯定爬不出去,不然肯定可以出去如果d>=u, 每次做无用功肯定爬不出去, 不然肯定可以出去 最后一次可以直接出去,所以先减去,然后看剩下的要多久,注意特判一开始直接出去的情况

2015-11-19 21:43:21 1472

原创 LightOJ 1036 - A Refining Company(dp)

题意: 在一个n∗m(n,m<=500)的地图里有R矿和U矿,当你在某个点(x,y),可以建造一个只能向西或者向北挖取矿石的履带车在一个n*m(n,m<=500)的地图里有R矿和U矿, 当你在某个点(x, y), 可以建造一个只能向西或者向北挖取矿石的履带车 R矿石只能被向北移动的履带车挖取,U矿石只能被向西移动的履带车挖取,并且履带车不能交叉R矿石只能被向北移动的履带车挖取, U矿石只能

2015-11-13 21:52:57 757

原创 LightOJ 1047 - Neighbor House (dp)

题意: n<=20个房子涂3色,每个房子涂不同颜色代价不用,相邻房子颜色不能相同,求涂完的最小代价n<=20个房子涂3色, 每个房子涂不同颜色代价不用, 相邻房子颜色不能相同, 求涂完的最小代价分析: 煞笔题,dp[i][j]:=前i个房子涂完,且第i个房子颜色为j的最小代价煞笔题, dp[i][j]:= 前i个房子涂完, 且第i个房子颜色为j的最小代价 ans=min{dp[n][

2015-11-13 20:23:57 448

原创 LightOJ 1044 - Palindrome Partitioning (区间dp)

题意: n<=1000长度的字符串,最少能划分成几个回文子串n<=1000长度的字符串, 最少能划分成几个回文子串分析: 区间dp预处理出isPalindrome[l][r]:=s[l⋯r]是不是回文串区间dp预处理出isPalindrome[l][r]:= s[l \cdots r]是不是回文串 dp[i]:=表示长度为i的串最少能划分成几个回文串dp[i]:= 表示长度为i的串最

2015-11-13 20:13:46 474

原创 LightOJ 1038 - Race to 1 Again (期望dp)

题意: n<=105,每次操作可以除以它的约数,求变成1的期望n<=10^5, 每次操作可以除以它的约数, 求变成1的期望分析: 期望dp,dp[i]:=i变成1的期望步数,由于可以除1,所以这个我们单独考虑,不然就转移到自己就炸了期望dp, dp[i]:= i变成1的期望步数, 由于可以除1, 所以这个我们单独考虑, 不然就转移到自己就炸了 约数还可以用筛法来打表,我突然给忘记了约

2015-11-13 17:59:53 607

斯坦福大学2014机器学习个人笔记

斯坦福大学2014机器学习个人笔记

2017-03-04

空空如也

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

TA关注的人

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