- 博客(24)
- 资源 (6)
- 收藏
- 关注
原创 骨牌覆盖问题总结!hihoCoder/ NYOJ-1273宣传墙1151
本想着做一下第九届河南省省赛题,结果被这个类似骨牌覆盖的题卡住了,队友然我去hihoCoder上老老实实把骨牌覆盖一、二、三做完,这题就没什么问题了。虽然很不情愿,但还是去见识了一下。 骨牌覆盖问题主要解决用1*2的骨牌来覆盖K*N的棋盘,求有多少种覆盖方法。k一般在7以内。比如hihocoder #1143用1*2的骨牌覆盖2*N的棋盘,很明显是个斐波那契数列。hihocider#1151问
2017-04-26 08:57:11 846
原创 河工大校赛蹭赛记!
河工大校赛邀请赛总结 还是让我理一理思路吧。 比赛12点开始,我们从学校去郑州至少4个小时,6点起床40集合然后7点准时出发,结果吃完早餐上车不一会晕的要死。11点半到达河工大,志愿者在门口等我们,然后直接带我们进去,表示想先去趟厕所,结果被带去听宣讲会,然后被告知午餐是面包和牛奶已经备好在桌子上。宣讲会完大概45左右,然后在图书馆门口给大家说了一下策略,然后各自进场了。事实上事情有点
2017-04-24 01:10:25 458
原创 Codeforces Round #409 (rated, Div. 2, based on VK Cup 2017 Round 2)-C. Voltage Keepsake
C. Voltage Keepsake 做这个题做了两小时,题不错,比赛的时候经(实)不(在)住(做)睡(不)觉(出)的(来)诱惑然后做了半小时就睡了。但题还是要补的。 题意:n台机器同时工作,每台机器耗电的速率为ai,初始电量为bi。现在有一个充电机可以以每秒p的速率给任意一台机器充电,当有一台机器电量为0时,所有工作室结束,求最多能工作多久,如果可以无限工作,输出-1。 好吧,
2017-04-19 11:03:58 370
原创 Educational Codeforces Round 19 A+B+C+E!
A. k-Factorization 题意:将n分解成k个大于1的数相乘的形式。如果无法分解输出-1。 思路:先打个素因子表,然后暴力判,注意最后跳出的条件。int len,a[N],b[N];void init(){ memset(a,-1,sizeof(a)); a[0]=a[1]=0; memset(b,0,sizeof(b)); len
2017-04-16 19:22:59 802
原创 ZOJ-3956 Course Selection System,01背包!
Course Selection System 比赛的时候最后20分钟想到了是01背包,奈何没时间推出怎么背。 题意:n门课程,每门课程都有一个h值和c值,现在给出一个happy的定义,所选的课程的h的和H,c的和C,happy=H^2-C^2-HC。求happy的最大值。 思路:开始以为是贪心,但感觉没有贪心这么简单,在这个问题中每门课程都有选或不选两种情况,很容易就想到01
2017-04-16 18:51:33 479
原创 ZOJ-3953 Intervals,t
Intervals 题意:给出n个区间,求最少删除多少个区间使得任意三个区间都不相交。 思路:按区间左端点排序,每次选取r最大的两个与当前比较,如果能放更新r,否则删除r最大的。关键就在怎么删除r最大的,我们可以再定义一个排序数组,按r排序即可,然后比较。struct node{ int l,r,id;} v[5],a[N];int b[N];bool cmp(no
2017-04-16 18:37:32 314
原创 Timus 1329. Galactic History。LCA最近公共祖先或dfs递归离线处理!
1329. Galactic History 比赛的时候看到学弟A了这题然后跟榜做,结果在LCA的道路上一去不复返,这个题是很像LCA求最近公共祖先的,不过三个人都没学过LCA,只能拿着资料看着像然后就打上去,结果debug半天,真是吃鸡,边学边做。 题意:n个点,接下来n行每行每个u,v,表示v是u的父节点。v=-1表示u是祖先节点。然后q次查询,每次一个u,v。如果u是v所在的
2017-04-14 09:26:24 410
原创 HDU-1829 A Bug's Life。并查集构造,与POJ1709异曲同工!
A Bug's Life Find them, Catch them 都是并查集构造的题,不久前MQL学长给我们拉过POJ上那道题,稍微复杂点,过了这么久竟然差不多忘完了,比赛的时候由队友在做这道题,我一直在看其他的题,在确定其他的题都不好做而且这个题好几个队都过了所以我们打算攻一
2017-04-14 08:47:19 434
原创 E. Lost in WHU。矩阵快速幂!
E. Lost in WHU 比赛的时候一直不知道样例怎么来的,然后和队友推了一下,然后还是没什么思路,样例手推很困难,然后我随口枚举了几个算法dp、广搜、快速幂。比赛结束问了谷队长结果真的是用快速幂写。 题意:n个点,m条边,每一步可以从一个点走到与其相连的点上,求如果最多可以走T步,1到n有多少种走法。 思路:裸的矩阵快速幂,初始矩阵在输入的时候连的双向边,表示可走,但要注意
2017-04-13 08:04:46 367
原创 HDU-5423 Rikka with Tree。树深搜
Rikka with Tree 题意:给出树的定义,给出树相似的定义和不同的定义,然后给出一棵树,求是否存在一颗树即和其相似又与其不同。存在输出NO,不存在输出YES。 思路:以1号节点为根节点,我们观察到一颗树如果不存在这种树即与其相似又与其不同,那么这棵树要么所有节点的深度都不一样,要么有深度一样的并且他们的父节点都一样,后来想想,如果当前节点的父节点有多个儿子,那么当前节点则不能
2017-04-12 13:27:13 379
原创 2017 Wuhan University Programming Contest (Online Round) D. Events,线段树区间更新+最值查询!
D. Events 线段树区间更新查询区间历史最小值,看似很简单的题意写了两天才写出来。 题意:n个数,Q次操作,每次操作对一个区间[l,r]的数同时加上C,然后输出这段区间的历史最小值。 思路:在线段树区间更新最值查询的基础上再用一个变量表示历史最小值,每次更新只需对当前最小值更新然后用当前最小值更新历史最小值。细节问题很不好处理,可能会有重复多次更新某个区间但是其下的子节
2017-04-12 13:08:57 378
原创 SPOJ - ADAFIELD ,Set+map,STL不会超时!
ADAFIELD - Ada and Field 这个题,如果用一个字来形容的话:-----------------------------------------------嗯! 题意:n*m的空白矩形坐落在XY轴,Q次操作,每次可以在y轴或x轴的矩形区域内画一条直线,是直线啊。问每次操作后最大的矩形面积多大。 对于思路我只能拍手称赞了,一开始想不到怎么优化,想着用优先队列
2017-04-10 23:55:06 378
原创 CSU-1803: 2016 ,同余定理!
int main(){ int n,m; while(~scanf("%d%d",&n,&m)) { int r1=n/2016,r2=n%2016; ll ans=0; for(int i=1; i for(int j=1; j if((i*j)%2
2017-04-10 23:54:06 302
原创 SPOJ - ADAQUEUE ,双端队列简单运用!
ADAQUEUE - Ada and Queue 表示这题是学弟带的榜,题还没看完,学弟吐了一句:这不就是双端队列嘛。于是掏出布满尘埃的《曾粽根ACM程序设计》,嗯,确实是裸题,现学现做。 题意:若干操作,每次可以在队首加入元素,可以在队尾加入元素,也可以翻转整个序列,查询最前面的或者最后面的数。操作数10^6。 除了翻转不用实际操作,其他的就是双端队列加入和删除操作了,若是
2017-04-09 11:52:24 579
原创 CSU-1336: Interesting Calculator,最短路思想!
1336: Interesting Calculator 这道题被LZQ抢了一血,于是去读题发现题意不难,纯广搜结果写的一塌糊涂。 题意:给你两个数x,y。由x每次可以经过一系列操作变换,每个变换都有一定的费用,求x变换到y的最小费用下最小步数。 思路:类似最短路的思想,当时只想到每个点有30个方向可以走,于是直接广搜,但不是TLE就是MLE,后来比完赛看题解才知道要用优先队
2017-04-07 21:02:19 403
原创 SPOJ - ADALIST,双端队列入门模板!
ADALIST - Ada and List 这道题时限6.5s,激动人心啊,好多人STL一顿乱写AC,哈哈,如果熟悉双端队列的话这道题其实是很水的。 题意:n个数的数列,然后接下来Q次操作,每次可以将某个数x插入第k个位置,那后面的数往后移。也可以删除第k个位置上的数,还可以是查询第k个位置上的数。 这就是双端队列的裸模板啊。下面简单介绍一下双端队列。
2017-04-06 17:32:58 679
原创 公钥密码之RSA密码算法扩展欧几里德求逆元!!
扩展欧几里得求逆元 实话说这个算法如果手推的话问题不大,无非就是辗转相除法的逆过程,还有一种就是利用扩展欧几里德算法,学信安数学基础的时候问题不大,但现在几乎都忘了,刷题的时候也是用kuangbin博主全国通用的模板,代码十分简洁,但并没有理解其原理,学的时候也只了解了个大概。 来看代码吧:#includeusing namespace std;int E_GCD(i
2017-04-06 16:42:35 2549
原创 公钥密码之RSA密码算法大素数判定:Miller-Rabin判定法!
公钥密码之RSA密码算法大素数判定:Miller-Rabin判定法! 先存档再说,以后实验报告还得打印上交。 Miller-Rabin大素数判定对于学算法的人来讲不是什么难事,主要了解其原理。 先来灌输一下费马小定理:若p为素数,a是正整数且gcd(a,p)=1,则a^(p-1)%p=1。信息安全上俗称同余。本人时常将费马小定理与欧拉定理搞混淆,不过真的很类似。这里既是利用
2017-04-06 15:21:53 1874
原创 Codeforces Round #407 (Div. 2) B+C!
B. Masha and geometric depression 被这个题坑了一下午,感觉很水,一直WA在第14组,我那个气啊,结束后发现第14组有点小争议,于是找出题人解释,然后出题人甩给了我一段原文:Masha writes all progression terms one by one onto the board (including repetitive) whil
2017-04-03 14:36:27 375
原创 NYOJ-258/POJ-2559/HDU-1506 Largest Rectangle in a Histogram,最大长方形,dp或者单调队列!
Largest Rectangle in a Histogram 这么经典的题硬是等今天碰到了原题现场懵逼两小时才会去补题。。。废话不多说: 题意:截取一个矩形使其面积最大,随你怎么截,反正面积要最大。输出最大面积,注意爆int。 思路:dp或单调队列。核心思路是从一个小矩形往两边扩散,分别找两边第一个小于这个矩形的位置,其中面积就是这个小矩形与区间长度的乘积,我们预处理出所
2017-04-02 22:59:43 535
原创 “玲珑杯”ACM比赛 Round #13 B -- 我也不是B,倍增+二分!
B 我也不是B 这个题做了一下午,比赛两个小时还是没做出来,比完赛才知道要用一个倍增算法确定区间,然后再二分右端点。 题意:定义一个序列的混乱度为累加和:b[i]*v[i],b[i]为这个序列中第i小的数,v[]数组是给定的。如果当前加进来的数购车的数构成的序列的混乱度大于m,则将当前的序列扔掉,然后将变量C加一,现在给出要加进来的序列的顺序,和v[]数组,求最终C的值。
2017-04-01 18:16:11 720
原创 HDU-4849 Wow! Such City!,最短路!
Wow! Such City! 题意:题面很难理解,幸亏给出了提示,敲了一发板子过了。给出x数组y数组和z数组的求法,并给出x、y的前几项,然后直接利用所给条件构造出z数组再构造出C数组即可,Cij表示i点到j点的路长,然后再跑个dij就可以求出0点到其他点的最短路,然后将这些最短路对M取余求所有取余值的最小值。需要注意的是Cij=Z(i*n+j),也就是X、Y、Z数组都要开到(n-1)*
2017-04-01 09:13:16 621
原创 HDU-4848 Wow! Such Conquering! 爆搜+剪枝
Wow! Such Conquering! 题意:一个n*n的数字格,Txy表示x到y的时间。最后一行n-1个数字代表分别到2-n的最晚时间,自己在1号点,求到达这些点的时间和的最少值,如果没有满足情况的输出-1。 思路:纯爆搜,先用floyd跑一个最短路求出任意两个点之间的最少时间,然后枚举下一个点,加上剪枝,剪枝有个地方很难想:先到达的点的时间后面会重复加上很多次,所以在到达一
2017-04-01 09:04:55 513
原创 HDU-4847 Wow! Such Doge!,模拟!
Wow! Such Doge! 题意:给定的字符串中doge出现了多少次,直接模拟即可,不用KMP。char s[N];int main(){// int n; int ans=0; while(gets(s)) { for(int i=0; s[i]!='\0'; i++) if(s[i]>='A'&&s[i]<
2017-04-01 08:50:07 425
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人