自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

a novice

只有永远不停的长路 走着一代代不肯绝望的人

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

原创 Gym 100342J & Gym 100345H (bitset在图论题的应用)

bitset bitset在某些常数优化以及状态保存方面被称之为神器并不为过,主要表现在以下几个方面: 1. 状态表示。试想,用一个数来表示状态的极限是64位,而bitset可以保存任意位二进制数,并且修改简单,统计方便,并且支持批量操作。 2. 常数优化。图论的题,尤其涉及不带权的邻接图,算法经常动辄 n2,n3n^2,n^3 ,这个时候我们可以用n个bitset存储每个点的邻接情

2015-08-30 23:24:26 1102

原创 Gym 100338H High Speed Trains(高精度)

Gym 100338H High Speed Trains题意: 求n个城市相互连通的方案数。思路:和HDU 4390迷之相似。 一共有n个城市,那么就有n(n−1)/2n(n-1)/2条边,每条边均有两种可能,选或不选。那么我们用ans[n]ans[n]来表示n个城市相互连通的方案数:ans[n]=2n(n−1)/2−C1n∗ans[n−1]−C2n∗ans[n−2]−...−Cn−2n∗

2015-08-28 23:44:48 736

原创 Gym 100338I TV show (dfs枚举)

Gym 100338I题意:一个人去参加电视有奖问答的节目,初始奖金为100元,每答对一道问题奖金翻倍,答错奖金清零。此外有一次保险机会:花费C的奖金,下一题可以答对奖金翻倍,答错奖金不清零。 现在给你答对每道题的概率,求最优答题策略的奖金期望。思路:先不考虑有保险机会。回答对第j题后离开的奖金期望就是: 100∗2j∗∏ji=1pi100 * 2^j*\prod_{i=1}^jp_i 那么

2015-08-27 20:43:18 718

原创 Ural 1780 Gray Code (暴力)

Ural 1780题意:输入一个二进制数与该二进制数的格雷码,但有一些位置不确定,写程序将其恢复,无法恢复输出Impossible,多解输出Ambiguity。思路:其实是个普通的乱搞题。。 Gray码的定义:Gi=Bi−1⊗Bi,G0=B0G_i = B_{i-1}\otimes B_{i} , G_0=B_0 (第i位格雷码等于第i位二进制码与第i-1位二进制码的异或值) 然后按照这个定义

2015-08-27 00:58:01 838

原创 HDU 4390 Number Sequence (容斥原理+组合计数)

HDU 4390题意:大概就是这样,不翻译了: Given a number sequence b1,b2…bn.b_1,b_2…b_n. Please count how many number sequences a1,a2,...,ana_1,a_2,...,a_n satisfy the condition thata1∗a2∗...∗an=b1∗b2∗…∗bn(ai,bi>1). a_

2015-08-24 22:08:32 1123 1

原创 HDU 4407 Sum(容斥原理+质因数分解)

HDU 4407题意:给一个长度为n的序列,序列由1~n依次组成。 对序列执行两种操作: 1.查询[x,y]内与p互素的数的和; 2.修改第x数为c.思路:往线段树的方向想了半天,发现就是容斥原理略微变形,脑残不可医啊。。修改操作可以用map进行映射。查询操作的话我们就把序列一直当做1~n的序列来查询,然后迭代器跑一遍map判断对查询有无影响即可,总之操作最多2000次; 对于查询操作,我们

2015-08-24 17:29:19 1295

原创 HDU 4415 Assassin's Creed(贪心)

HDU 4415题意:壮哉我Assassin! E叔有一柄耐久度为m的袖剑,以及n个目标士兵要去解决。 每解决掉一个士兵,消耗袖剑Ai的耐久度,且获得该士兵的武器,可以使用该武器解决Bi名其他士兵。 E叔要尽可能地消耗更少耐久度解决更多的敌人,求最小消耗与最大杀敌数。思路:我们把士兵分为两个集合:e1与e2,e1的士兵 Bi = 0 , e2 的 Bi > 0.我们发现,如果能解决e2的任意一

2015-08-24 00:06:00 1382

原创 HDU 5414 CRB and String(贪心)

HDU 5414题意:输入两个字符串s和t,可以在字符串s中任意选一个字符c,在该字符c后插入一个字符d(d!=c),问经过多次此操作,能否将字符串s转化成字符串t。思路:我们思考题目所给条件: 显然 t 必须包含所有 s 的字符(s = “ab” , t = “acd”明显不可能); 其次插入字符d != c且向后插入,那么 s = “abc” t = “aabc”明显不可能,我们可以把这种

2015-08-22 01:04:55 907

原创 HDU 5411 CRB and Puzzle(矩阵快速幂+可达矩阵)

HDU 5411题意:Count the number of different patterns by counting the number of different paths of length at most m-1.思路:其实这类问题就是求: S=I+A+A2+...+AmS=I+A+A^2+...+A^m 一般普适的计算方式是: (AmS)=(AI0I)m∗(I0)\left(

2015-08-22 00:51:31 1657 1

原创 HDU 5407 CRB and Candies(数论+yy)

HDU 5407题意:计算: LCM(C0N,C1N,C2N,...,CNN)(1<=N<=106)LCM(C^0_N,C_N^1,C_N^2,...,C_N^N)(1<=N<=10^6)思路:先打个表看看? 我们可以发现: f(3)=f(4)/4,f(5)=f(6)/6,f(3)=f(4)/4,f(5) = f(6) / 6, f(9)=f(10)/10,f(11)=f(12)/12

2015-08-22 00:10:47 1714

原创 POJ 2528 Mayor's posters (离散化 + 线段树)

强烈不推荐在POJ做这道题!!! 强烈不推荐在POJ做这道题!!! 强烈不推荐在POJ做这道题!!! 推荐去UVA 10587 或 SCU 2249 POJ的数据比较水且可能有错,一些本来错误的数据但可以水过,以及在UVA与SCU同样题目都能AC的程序在POJ莫名WA了。 建议写完程序后跑下这组数据: 1 3 1 10 1 3 6 10 好多题解的答案是2,但答案明显是3,这是

2015-08-20 01:53:59 727

原创 日常训练小结

今天打多校赛差点爆零,校内队伍垫底,校内总rank再落一名,整个队伍都心痛不已,现在冷静下来回想整场比赛,到底我们失误在了什么地方?硬实力,比赛策略还是心态?亦或是一点点运气? 按照正常的发挥,今天我们预期应该至少能过3题,1001的区间DP或者1007的脑洞题,1004的yy题,1005的水题。 结果只在最后一小时过了1004。1001是+7最后一个多小时写的,结果写出来输出结果总和样例差1,

2015-08-18 21:25:24 1166 1

原创 HDU 1394 Minimum Inversion Number(线段树求逆序对数目)

HDU 1394题意: 给一个由0~n-1组成的序列,求出该序列的所有循环同构序列中的最小逆序对数目,逆序对的两个元素可以不相邻。思路:这题据说可以直接暴力O(n2)O(n^2)可以水过。。 说一下线段树做法O(nlogn)O(n\log n): 以这个序列来说明: 1,9,2,3,0,8,5,7,4,61 ,9 ,2, 3, 0, 8, 5, 7 ,4 ,6我们先假设有一个长度为n元素

2015-08-18 01:40:35 1135

原创 ZOJ 3886 Nico Number(筛素数+Love(线)Live(段)树)

ZOJ 3886题意: 定义一种NicoNico数x,x有以下特征: 所有不大于x且与x互质的数成等差数列,如x = 5 ,与5互素且不大于5的数1,2,3,4成等差数列,则5是一个NicoNico数。 再定义三种操作: 1.南小鸟询问[L, R]内有多少个NicoNico数; 2.果皇把[L, R]内的数全部对v取余; 3.果皇将第K个数换成X。 然

2015-08-17 20:12:55 912

原创 ZOJ 3690 & HDU 3658 (矩阵快速幂+公式递推)

ZOJ 3690题意:有n个人和m个数和一个k,现在每个人可以选择一个数,如果相邻的两个人选择相同的数,那么这个数要大于k 求选择方案数。思路:打表推了很久的公式都没推出来什么可行解,好不容易有了想法结果WA到天荒地老也无法AC。。 于是学习了下正规的做法,恍然大悟。 这道题应该用递推 + 矩阵快速幂。 我们设F(n) = 有n个人,第n个人选择的数大于k的方案数; G(n) = 有n个人

2015-08-16 23:36:51 2698 1

原创 LightOJ 1132 Summing up Powers(矩阵快速幂+二项式定理)

LightOJ 1132题意:给出N(1≤N≤1015),K(0≤K≤50);给出N (1 ≤ N ≤ 10^{15}) , K (0 ≤ K ≤ 50); 计算:(1K+2K+3K+...+NK)%232.计算:(1^K + 2^K + 3^K + ... + N^K) \% 2^{32}.思路:根据二项式定理,我们可以得到: (n+1)k=C0knk+C1knk−1+C2knk−2+...+

2015-08-16 22:57:04 1108

原创 HDU 2276 & FZU 1692 (矩阵快速幂+循环同构优化)

HDU 2276题意:给定一个01**字符串环**(2<=字符串长度<=100)然后进行m次的变换。 定义变换的规则为:如果当前位置i的左边是1(下标为0的左边是n-1),那么i就要改变状态0->1 , 1->0 比如当前的状态为100101那么一秒过后的状态为010111。思路:用公式表示变化状态其实就是: ai=(a(i+n−1)%n+ai)%2a_i = (a_{(i+n-1)\%n}+

2015-08-16 22:26:34 1203

原创 HDU 4291 A Short problem(矩阵快速幂+循环节)

HDU 4291题意:计算:g(g(g(n)))mod109+7计算:g(g(g(n)))\mod 10^9 + 7 其中:g(n)=3g(n−1)+g(n−2),g(1)=1,g(0)=0其中:g(n) = 3g(n - 1) + g(n - 2),g(1) = 1,g(0) = 0思路:开始的想法是一层层的求出来,后来发现是错的。只有最外层能模除109+710^9 + 7. 这里有一个知识点

2015-08-16 22:12:52 795

原创 HDU 2256 & HDU 4565 (矩阵快速幂 + 公式推演)

HDU 2256题意:计算⌊(2√+3√)2n⌋mod1024\lfloor{(\sqrt2 +\sqrt3)^{2n}}\rfloor \mod1024思路:∵f(n)=(2√+3√)2n=(5+26√)n=An+Bn∗6√\because f(n)={(\sqrt2 +\sqrt3)^{2n}} = {(5 +2\sqrt6)^{n}}= A_n+B_n*\sqrt6∴f(n−1)=An−1+B

2015-08-16 20:40:31 1619

原创 Codeforces Round #316 (Div. 2) (ABC题)

A - Elections 题意:每一场城市选举的结果,第一关键字是票数(降序),第二关键字是序号(升序),第一位获得胜利; 最后的选举结果,第一关键字是获胜城市数(降序),第二关键字是序号(升序),第一位获得胜利; 求最后选举获胜者。思路:直接模拟即可。代码:/** @author FreeWifi_novicer* language : C++/C*/#include<cstdio>

2015-08-14 17:43:13 635

原创 Gym 100379C Fibonacci number’s ratio (the hard version) (特征方程)

Gym 100379C题意:定义一个新的fibonacci数列:使G(n) = a * G(n - 1) + b * G(n - 2); 求n→∞时,G(n) / G(n-1) 的值(保留小数点后6位精度)。思路:分情况讨论(根据a,b,g0,g1是否为0,共计16种情况):a = 0 且 b = 0 时,一定是NO;g0 = 0 且 g1 = 0 时,一定是NO;a = 0 且 b !=

2015-08-12 22:19:22 651

原创 Codeforces Round #315 (Div. 2) (ABCD题)

A. Music题意:一首歌长度为S秒,已经下载了T秒,下载速度为每q秒的现实时间能下载下来(q-1)秒 的歌曲。现在开始听歌,如果听到还没下载的地方就从0秒的地方开始replay,求一首歌听完需要从0秒听几次(包括一开始那次)思路:我们可以用路程-时间的思路来考虑这道题。 假设两位选手“播放”与“下载”,“播放”的起点是0m处,“下载”的起点是Tm处,终点在Sm处,“播放”的速度是1m/s,“下

2015-08-12 00:56:25 852

原创 HDU 5371 (2015多校联合训练赛第七场1003)Hotaru's problem(manacher+二分/枚举)

HDU 5371题意:定义一个序列为N序列:这个序列按分作三部分,第一部分与第三部分相同,第一部分与第二部分对称。 现在给你一个长为n(n<10^5)的序列,求出该序列中N序列的最大长度。思路:来自官方题解:修正了一些题解错别字(误 先用求回文串的Manacher算法,求出以第i个点为中心的回文串长度,记录到数组p中 要满足题目所要求的内容,需要使得两个相邻的回文串,共享中间的一部

2015-08-11 21:15:06 791

原创 一道题Wrong Answer之后该何去何从?

敲代码手不稳是个大毛病,往往会让一份能AC的代码变成99.995%正确,失之毫厘谬以千里,最近十场个人赛很少有能一次AC的经历,仔细想想触发根本逻辑上的错误,大概都是跪在这些细节上:1.输出格式,输入格式是否符合规范,有没有Case #?是否有多余空格输出?I64d or lld?输出浮点数尽量不要用cout。2.i和j,n和m,l和r有没有写混了的。。(今晚检查了两小时的程序发现i

2015-08-08 03:24:58 10004 1

原创 HDU 5358(2015多校联合训练赛第六场1006) First One (区间合并+常数优化)

HDU 5358题意:求∑i=1n∑j=in(⌊log2S(i,j)⌋+1)×(i+j)思路:S(i,j) 主要是写起来比较难一些,一些细节比较纠结,一定思路理清后再写。ps.此题卡常数毫无人性,一定记得预处理好区间映射,否则n(logn)^2也得跪。。code:/** @author Novicer* language : C++/C*/

2015-08-07 02:38:18 1164

原创 Codeforces Round #Pi (Div. 2) (STL专场)

Codeforces Round #Pi (Div. 2)A - Lineland Mail水题,拼手速。/** @author Novicer* language : C++/C*/#include#include#include#include#include#include#include#include#include#include

2015-08-07 00:48:20 894

原创 HDU 4372 Count the Buildings(组合数学,第一类Stirling数)

HDU 4372题意:有n个建筑高度为1~n,从前看能看到f个,从后看能看到b个,求可能有多少种排序情况。思路:五个小时花了3.5小时在上面,结果靠强行yy出了递推式(事后发现。。yy对了95%,跪在各种细节上,比赛结束也没A掉。。只能说大力出奇迹!但这种奇迹往往会毁在不经意的细节上orz分析几组数据我们可以发现,最高的n号楼一定是可以看到的,无论是从左还是右。

2015-08-05 23:09:43 1195 1

原创 HDU 4365 Palindrome graph(几何变换+快速幂)

HDU 4365题意:给你一个n*n的画,然后每个格子图上任意k种颜色之一,要求通过翻转旋转后与原图保持一致,且原图已有m个格子有颜色。求有多少种涂法?思路:可以发现,我们所求的画是个高度轴对称和中心对称的图形,我们沿两根对称轴与两根中心对称轴把图案切成八份,那么决定其涂色方案只需考虑其中一份即可,若其中一份有x个格子那么答案即是k^x。然而还有一个条件,即已经有m个格子涂上了颜色

2015-08-05 22:19:54 770

原创 HDU 4359 Easy Tree DP?(是dp但并不是tree dp + 组合计数)

HDU 4359题意:定义Bear Tree为一颗二叉树,这种二叉树每个结点有一个权值,范围在2^0~2^n-1,并且每个值只用一次,对于每个结点,如果同时存在左右子树,那么左子树的权值和要小于右子树的权值和。求点数为N,层次为D的Bear Tree的数量。思路:2^0 + 2^1 + ... + 2^n 根据这个性质,我们可以得出权值最大节点必须在右子树上,并且只要同时存在左右子

2015-08-03 15:53:12 870 1

原创 HDU 4355 Party All the Time(三分法搜索)

HDU 4355思路:三分法求f(x)极值。f(x)是指位置为x时的愤怒值之和,是一个三次函数,且存在极值点使f(x)最小。code:/** @author Novicer* language : C++/C*/#include#include#include#include#include#include#include#include#include

2015-08-01 21:03:04 871

原创 HDU 4334 Trouble(hash + 枚举)

HDU 4334题意:给五个数的集合,问能否从每个集合中取一个数,使五个数之和为0.思路:集合大小是200,直接枚举的复杂度是200^5,一定会超时。直接枚举的上限是3层,我们可以将枚举剩下两个集合各任取一个元素可能组成的元素和,并将其作hash处理,使我们能很快判断枚举出来的三个集合元素和在剩下的两个集合里是否有相应元素匹配。code:/** @author Nov

2015-08-01 20:07:27 743 1

二分查找教程

二分查找ppt教学演示,内附代码,来自武汉大学

2014-10-11

空空如也

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

TA关注的人

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