自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Sakai_Masato的博客

雅人叔好帅啊!

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

原创 腊月二十三

今天是腊月二十三日,是北方人民的小年,南方人民则是明天。 早上躺在床上,本来以为外面的地上都已经积满了雪,掀开窗帘却只能看到房顶车顶的雪,早上老天爷好像也在睡懒觉,所以没下雪啊。 上午不知道是谁说了一声:“雪好大。”我赶紧把扎在液晶屏里的眼睛拔出来,望向窗外,果然是大雪。可以清晰地看见每一片雪的身影,“过一会儿,外面应该很美了。”我想。 中午出去,外面已经全白了,早上树枝树叶都只有一点稀疏的雪

2016-02-01 18:25:26 511

原创 树形dp易错点

今天搞了差不多一天的树形dp,题也没太做多少,发现自己这一块还有很不足的地方,知识一点也掌握得不牢固。 写树形dp的时候要注意状态的表示和循环变量的枚举顺序,否则会出大问题! 具体地来说,树形dp一般的像背包那样缩掉了一维,所以应该逆序枚举,如果顺序实在是搞不清楚的话建议开一个临时数组先记着,再赋回去。 这里面一定要注意每一层循环的范围和方向!!

2016-01-31 20:48:10 353

原创 BZOJ 1031后缀数组

题意 题解:裸后缀数组,在此后缀数组写错表示很忧伤。 最后的那个m=p也是必要的!吔屎了。 模板#include<ctime>#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<iostream>#include<string>#include<cassert>#includ

2016-01-30 15:01:19 372

原创 胡杨林

曾在戈壁滩上,看见了一丛胡杨林。 天刚刚亮,我们一行人就出发,踏上了寻访沙漠的旅途。而眼前就有一个很大的麻烦,就是那月牙形的陡峭的沙丘,每走一步都要顺流沙往下滑一点。约莫半个小时后,我们才爬上了沙丘,个个都气喘吁吁,面红耳赤。 正当有些人在呼啸,有人在倒鞋子里的沙子时,我觉得有一丛绿色在挑着我的眼睛。顺着那“触手”望去。是一片胡杨林。 我从未见过胡杨,只是在一些电视剧里目睹过它的姿态。在电视里

2016-01-18 16:59:52 423

原创 我的高中班主任——龚政军老师

约摸是2015年的8月19日罢,我怀着期待的心情,踏进了雅礼中学1501班的教室,首先吸引住我的眼球的,不是各路趴在桌子上刷题的学霸,也不是“自古”以来就流传着的1班的性比例,而是那一位不大看得出年龄的,穿着短衬衫,头发剪得干净利落,身材矮小的,用坚毅目光看着讲台下的同学的,站在讲台上的班主任——龚政军老,同时也是我们的语文老师。我本来不是很熟悉这个老师,甚至是听都没听说过,但是能够带1班的绝

2015-12-27 20:11:32 3350 1

原创 USACO kimbits

题目大意:要你求出长度为n,1的个数小于等于l的第i个数(从小到大) 分析:我们从最高位开始判断是否为0,我们可以求出最高位为0的数的方案有多少个(排列组合。。。)如果大于等于当前的名次,则这一位必定是0,否则为1,再减去为0的个数即为新的名次。 收获:求第几大的问题可以考虑从小到大看每一类有多少个一步一步地确定。/*ID: d2947901PROG: kimbitsLANG: C++*

2015-12-18 19:44:49 452

原创 USACO Humble Numbers

题目大意:给出你一个素数集,要你求出第n小的仅由这些素数构成的数。 我开始也想过已知前面k大的丑数推出第k+1大的丑数,没有想出来,以为这题无法靠这种方法来转移。其实是很简单的,第k+1个丑数肯定是前k个丑数再乘一个素数得到的。。。 真是傻逼题,今天月考也砸了,感觉自己好蠢,心理老师讲了不要给自己心理暗示,但是这些貌似可以证明我蠢的事实摆在我的眼前,我有的时候真的很想退组去专心搞文化。以前都是面

2015-12-16 21:15:04 481

原创 青春生活的苦与甜

回首走过的这三年多的青春生活,却有一种复杂的滋味在心头。不论如何,就像零和一可以构成所有的数一样,苦与甜大概也就成了我青春生活中的真实写照罢。 最苦的时光莫过十二岁那年,初次离开家乡的我,不得不独自承受那无尽的思家之痛的煎熬。 在这一年里,不知道有多少月明星稀的夜晚,我躺在床上辗转反侧,难以入眠。童年在父母怀抱下生活的场景,犹如一帧帧动画,在这大家均已熟睡的宿舍中,借着皎洁的月光,便连成了串,浮

2015-12-16 18:44:26 773 1

原创 USACO nocows

题目大意:给你n个节点,要你组成一个k层的树,这棵树要么只有叶子节点,要么只有孩子个数为2的节点,求树的个数。 题解:我开始做的时候yy出了一个方程,大概是设dp[i][j]dp[i][j]表示i个节点,放j层的方案数,那么我们把答案分成两部分,一部分是左右两颗子树深度都一样,另一部分是左右两颗子树深度不同,注意到使树增加一层需要用两个节点接到叶子节点上。由于第一种情况比较简单,这里先讨论第二种情

2015-12-09 20:34:51 554

原创 12-5和12-6考试总结

day1: 第一题:求∑i=1ngcd(i,n)\sum\limits_{i=1}^{n}gcd(i,n),我推到了gcd(x,a)=b求a的个数这一步。哪知把b移过来就成了gcd(x/b,a/b)=1就是欧拉函数了。张千帆还提醒我写过,我暑假写polya的时候(就是项链那种题目)曾经用过这结论,现在又忘记了QAQ 第二题:给出平面上N个点,要你求一条路径从一号点到N号点,然后回来,要求每个点只

2015-12-08 21:51:24 530

原创 11月29日考试总结

考试情况: 第一题想了一会儿,想出来了一个正确的贪心算法,结果实现的时候没有搞好。本来想写个dp来对拍的,结果dp实在是太难调了,时间就这样被浪费掉了,后面的题目都没来得及做。 总结: 对于第一题,以后想出来的算法一定再进一步想比较简单的实现,思维要打开,既然可以贪心肯定不止一种实现方法,一定有更加简单的,比如匡正非的代码。。。 对于第二题,应该是可以考虑到n3n^3的算法的,接下来就是如何

2015-11-30 22:01:23 501

原创 USACO sort3

题意:给你一个只有1、2、3的数列,要你求出任意交换两个之后成为升序的最少次数。 题解:一开始本来也想到了拿初始状态与结束状态做对比,发现有些不好搞便去想构造算法去了,自然是没有想得出。题解把开始和结束的对应数字连一条边,这样会形成很多环,答案就是环的长度之和减去环的个数了。 还有一种搞法,把那些只要交换一次就两个都到位的对交换,ans++,这些对肯定是必要的。剩下的就是那些交换一次都不能到位的

2015-11-28 17:04:01 602

原创 USACO skidesign

题意:给出一组数列,每个数大于等于0小于等于100,把一个数+x要x平方的代价,求使得极差小于等于17的最小代价。 这题做了我蛮久,我TM真是个傻逼。 一开始我用set的第一个和最后一个元素去分摊差值,然后循环搞直到满足条件为止,然而这是错的,用许多组一样的数和一个很大的数可卡。后来结合数轴,看了很久才发现,我的目的就是要把这些数都挪到一个长度为17的区间内,于是考虑枚举这个区间,贪心计算每个区

2015-11-25 21:12:09 581

原创 常见错误

1.多组数据的图论题e要清0;

2015-11-21 11:39:39 516 1

原创 NOIP2015总结

考场情况:day1的题目考场上感觉前两题很水。第一题敲了模拟,然后写数据生成器和检验程序对拍,大样例也过了于是就跳过了。第二题一看就知道是一个找有向图上的最小环问题,我没注意到只有n个点n条边,每个联通块只会有一个环,我就写了个BFS,速度还是很快的,拍了蛮久。我做第三题的时候还有两个小时,然后就脑残地写状压dp,然后顺子不会处理,此时代码已经巨长了,就骗30分算了。day2的题目比day1

2015-11-14 10:58:03 750

原创 Miller_Rabin和Pollard Rho算法

废话不说贴代码 Pollard Rho Miller_Rabin Miller_Rabinbool miller_rabin(LL aa,LL p){ int cnt=0; LL res=p-1,u; while(res%2==0) { res/=2; cnt++; } u=ksm(aa,res,p);

2015-11-04 21:49:55 533

原创 10月联赛集训考试总结

依旧是那么地弱,考试时常出西西。 来说一下收获吧: 一 、显然扩充了题量,然而没搞文化,所以欠了好多作业。总算刷完了联赛题,接下来刷刷USACO算了,一些毒瘤题可以跳过。 二、一定要打爆力,那种尝试推公式十分钟没有头绪的题目一定要打表找规律了,对于一些超过限制时间一点的算法可以考虑将大数据打表。。。 三、打对拍啊,除非是那种特别有把握的题。 四、顺便扯一下错排公式: f(x)

2015-11-04 21:38:06 563 1

原创 Codeforces 8C

题目大意:给出包的坐标和n个物品的坐标,你初始从包出发,每次可以最多拿两个物品,问怎么走使路程最短,输出方案。 题解:状压dp,开始我想状态一直没有想出来。容易知道只要你拿包的配对方案是一定的,那么不管按什么顺序拿,都是可以的。 那么我们设dp[i]表示i这个二进制状态,也就是说当前状态选了i这些物品的答案。然后进来一个物品(当前没被选的物品中下标最靠前的一个),我们先更新把这个物品单独拿的后继

2015-10-09 21:52:30 665

原创 Codeforces 8B

题目大意:给出机器人的移动路线,求是否存在这样一个只有空格和障碍的棋盘,使得机器人从起点道中点的路径为最短路。 题解:开数组判断一下子,判断是否机器人走到的当前格子的相邻三个格子(除去来的那一个格子)中有一个被走过,如果有说明是不可行的。 %%%__debug\%\%\%\_\_debug

2015-10-09 19:44:43 645

原创 Codeforces 8A

题目大意:给出一个字符串序列,然后给出两个序列s1,s2s_1,s_2,求是否能在原序列中依次找到找到s1,s2s_1,s_2,或者反转原序列是否能找到。 题解:本来以为s1,s2s_1,s_2长度也是很大的,然后写了个KMP,光荣WA在了第14个点,然而看数据也没用。后来看网上的代码是暴力,再次看题才发现模式串不超过100还是怎么的,果断用了string.find()。就是一道傻逼模拟题。#in

2015-10-08 14:37:35 564

原创 Melancholy 题解

题目是保密的,所以我只写题解了,先%曹力升大爷一发。 设ci,jc_{i,j}表示前ii个数,取jj个数乘起来的和。 比如{a1,a2,a3}\left\{a1,a2,a3\right\}这个集合,c3,2=a1∗a2+a1∗a3+a2∗a3c_{3,2}=a_1*a_2+a_1*a_3+a_2*a_3,也就是说我们求出来的答案还要乘一个阶乘就是最终答案了。 考虑求区间[l,r][l,r]取k

2015-10-07 19:58:28 571 1

原创 Codeforces 7D

题目大意:给出一个字符串,长度小于等于5*1e6。定义一个串是k回文的,当且仅当它的前半部分和后半部分是(k-1)回文的,求其所有前缀的回文值得和。 题解:我之前写了一个挫爆了的哈希,待会贴代码,交了20多次都没A,TLE了。然后看看网上的,判回文串实际上记一个前缀哈希值(后进的元素是低位),另一个哈希值(后进的元素是高位),若x[i]=y[i]则说明以i结尾的前缀为回文,那么它的值为dp[i>>

2015-09-30 15:43:45 738 2

原创 Codeforces 7C

题目大意:给出直线的一般式Ax+By+C=0Ax+By+C=0的系数,求解在该直线上的一个整点。 题解:妈了个鸡就要联赛了,多刷刷这种裸算法题目有益身心健康,把背下来的扩展欧几里得打上去交一次就A掉了。 %%%__debug大神,保佑我联赛不挂。#include<cmath>#include<cstdio>#include<cstdlib>#include<cstring>#includ

2015-09-29 20:58:55 615 1

原创 SGU 229

题目大意:给出1个01矩阵,求能否把1分成两个部分,使得一部分通过先旋转后平移(不是滚动的)与第二部分的1重合.题解:一开始看不懂题啊,以为可以随便乱转QAQ。    我们暴力枚举每一种置换,然后把棋盘置换之后,与原棋盘比较,有1覆盖的,两个位置连一条边。容易得出,如果能分成两个部分,那么连边之后,所有的点都不是孤立的,而且要么成链,要么成环,或者都有。    然而代码好像丢失了QAQ

2015-09-10 14:51:55 482

原创 SGU 227

题目大意:给出一些圆弧的左右端点和中点坐标,求这些圆弧的交点。             题解:先把这些圆弧看成是一个完整的圆,求圆心半径什么的不再赘述,最后判断一下各交点是否在某段圆弧上。如何判断是否在圆弧上呢,我们可以在两个圆弧端点之间连接一条向量,这样就可以转化为判断这个点在这条向量的哪一边了,叉积判一下就行了。这题最坑的就是判重合,情况很多,坑爹啊。

2015-09-06 22:03:19 549

原创 SGU 226

题目大意:给出一张图,每条边都有一个颜色,求1到n的最短路,要求路径上不能有两相邻边颜色相同。  题解:本来写了个裸SPFA,WAon5看了讨论区的数据才知道不能直接判断边的颜色然后跑SPFA,应该设d[n][k]表示第n个点,由第k个颜色过来的最短路,也就是加一维跑SPFA。给我的感觉是:做不出就加一维。 %%%__debug大神。#include#include#include

2015-08-27 20:28:08 478

原创 NOIP 2014 day1第二题 联合权值

题目描述:无向连通图G 有n 个点,n - 1 条边。点从1 到n 依次编号,编号为 i 的点的权值为W i   ,每条边的长度均为1 。图上两点( u ,  v ) 的距离定义为u 点到v 点的最短距离。对于图G 上的点对( u, v) ,若它们的距离为2 ,则它们之间会产生Wu×Wv的联合权值。 请问图G 上所有可产生联合权值的有序点对中,联合权值最大的是多少?所有联合权值之和是多少?

2015-08-27 19:24:00 577

原创 NOIP2014 day2第三题 解方程

题目大意:已知多项式方程: " target="_blank" style="color:rgb(113,40,40); font-family:Tahoma; line-height:18px">求这个方程在[1,  m ] 内的整数解(n 和m 均为正整数)。题解:傻逼hash题,我取了三个模数,然后把每个系数分别取模;如果a不是解那么显然a+mod也不是解。经过三重筛选以后,剩下

2015-08-27 17:02:34 726

原创 NOIP 2014 day1第三题 飞扬的小鸟

题目描述:Flappy Bird 是一款风靡一时的休闲手机游戏。玩家需要不断控制点击手机屏幕的频率来调节小鸟的飞行高度,小鸟顺利通过画面右方的管道缝隙。如果小鸟一不小心撞到了水管或者掉在地上的话,便宣告失败。 为了简化问题,我们对游戏规则进行了简化和改编:        1.  游戏界面是一个长为n ,高为 m 的二维平面,其中有k 个管道(忽略管道的宽度)。 2.  小鸟始终在游戏界

2015-08-27 16:52:51 946

原创 SGU 225

题意:给出一个n*n的棋盘和k个,问有多少种放的方法使得马互不相攻击。      题解:首先很容易想到设dp[u][v][i][j]表示前i行,用了j个马,第i行的状态为v,前一行的状态为u。dp[u][v][i][j]+=dp[i][u][i-1][j-cnt[v]]且v不与i,u冲突。  判冲突的话可以这样,前两行左移1位&当前行,为1则冲突,然后右移一样的。前一行就左右移

2015-08-27 10:38:02 851

原创 SGU 224

题目大意:给定一个n*n的国际象棋棋盘和k个后,问使得所有后互不相攻击方案数。题解:无脑爆搜(和紫书P193上面那个差不多),我265ms过的,0.75秒就会T,还好,捏一把冷汗。%%%__debug大神今天一下午过了BZOJ1999树网的核加强版,还口口声声地吐槽联赛数据弱,WA3个地方的程序都能A。#include#include#include#include#inclu

2015-08-26 19:39:13 674

原创 SGU 223

题目大意:给出一张n*n的棋盘和k个王,问有多少种使得王互不相攻击的方案。题解:状压dp,设dp[i][j][S]表示前i行用了j个王,其中第i行放王的状态是S。显然有dp[i][j][S]+=dp[i][j-cnt[S]][S'],其中cnt数组保存每个状态王的个数,且S'作为当前行可以在下一行放S这个状态。位运算写错了妈了个鸡,还有用vector里的元素时直接用的指针,就这两个地方

2015-08-26 16:19:46 521

原创 SGU 222

题目大意:给出一个n*n的棋盘和k个车,要求他们互不相伤害,问有多少方法。题解:裸dp,dp[i][j]表示放前i行,有j个车的方案数,那么dp[i][j]=dp[i-1][j]+dp[i-1][j-1]*(n-j+1)。没特判n然而还可以组合数学显然当n当n>=k时,可分为两步:先在n*n的矩阵中选出k行k列,组成一个k*k的子矩阵,再在k*k的子矩阵中放置k个。前一步的

2015-08-26 11:02:21 488

原创 Codeforces 7B

题目大意:其实就是模拟一个内存分配器,有n个指令,k个单元的内存。alloca:分配a个单元给内存块(内存块是从程序开始就计数器++),从左往右找一个连续空的内存区域将其分配。erasex:删除编号为x的内存块。defragment:把不相邻的内存块移动至相邻,且最前面的内存块要移动到1的位置(并不是标号小的靠前)。其实我看了一麻版的英文题面之后就去网上搜翻译,然而并没有,

2015-08-18 21:45:47 1136

原创 SGU 221

题目大意:给你一块n*n的国际象棋盘,放k个象,有多少种互不攻击的方法。我们可以把棋盘转45度,那么象就可以看成车了,而且黑格象白格象不可能互相攻击,于是我们考虑白格象。我们先把每一斜行的格子数拿出来,为避免后效性,从小到大排序再处理,不影响答案。然后就可以dp了,设f[i,j]表示前i格放了j个象的方案,由于一行只能放一个,有如下方程f[i,j]=f[i-1,j]+f[i-1][j-

2015-08-18 21:00:35 699

原创 Codeforces 7A

题目大意:给出一块8*8棋盘的终态,初始状态是全部白棋,一次操作可以把一行或一列的棋子换成黑棋,可以重复换,问最少要多少次。好吧,构造题,平时做得比较少。我的构造方法基于贪心的思想,我们先处理行,处理完行再处理列。对于一行在终态中全黑的,我们自然要在初始棋盘中将其涂黑,然后对于非全黑的一行,我们枚举每一个格子,再检查在这个格子上能不能竖着涂,能就在初始棋盘上涂。对于列同样的搞法。这道题完全

2015-08-16 20:48:15 721 1

原创 Codeforces 6E

题目大意:给定一个长度为n的序列和一个数k,求最大数与最小数的差小于等于k的子序列的最长长度,并输出有多少个,以及各自的左端点和右端点。不得不说这道题目真是经典。刚开始看到这道题的时候,就觉得要用线段树做了,但始终不知道该怎么搞,我当时的想法很暴力,枚举l,r用线段树暴力判断是否满足,显然T得很惨。看题解有一句关键的话:“若[l,r]满足条件,则[l,r-1]也必然满足条件”。这句话说明了单调

2015-08-16 19:48:44 908

原创 codeVS第二次月赛 C

题目描述 Description切记不要加任何文件读写, 本次比赛暂不支持ifndef ONLINE_JUDGE。请互相转告。评测机是linuxJijijie是恐怖的科学怪人,他有特殊的邪恶科技 Song'ci Crash。Dash在他的家庭农场里拥有 n块连续的拥有者黑色和金色混杂的 Da'shgua田地。Song'ci Crash攻击会使连续的一段  Da'shgua田

2015-08-16 16:19:48 820

原创 CodeVS第二次月赛 B

题目描述 Description切记不要加任何文件读写, 本次比赛暂不支持ifndef ONLINE_JUDGE。请互相转告。评测机是linux 是个富有诗意的男孩。在他居住的小镇上,有 n个村庄,由 n-1条道路连接着。这里的生活和谐而又宁静。有一天 tty偶然阅读到一篇杂志上的文章《阳光下的向日葵》,深受感动。特别是其中一位小女孩的故事让他记忆犹新。 于是他买来葵花籽,

2015-08-16 16:08:34 710

原创 CodeVS 第二次月赛 A

题目描述 Description切记不要加任何文件读写, 本次比赛暂不支持ifndef ONLINE_JUDGE。请互相转告。评测机是linuxtgopknight是著名的计算机天才,他十分喜欢研究二进制,所以他对0 和 1特别感兴趣。由于他很喜欢读宋词,在文学的熏陶下,他发现只有 , 组成的十进制数是十分有特点的,他定义为特别的数:. “1"是一个的特别的数。

2015-08-16 16:06:54 1076

空空如也

空空如也

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

TA关注的人

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