随笔分类 -  ACM萌动之旅

摘要:1、uva 1449/LA 4670 Dominating Patterns 题意:有n个模板串和一个文本串,找出哪些模板串在文本串中出现次数最多。 思路:AC自动机模板 1 #include<cstring> 2 #include<queue> 3 #include<cstdio> 4 #incl 阅读全文
posted @ 2017-09-09 14:45 萌萌的美男子 阅读(237) 评论(0) 推荐(0)
摘要:1、UVA 11525 Permutation 题意:求1~k这k个数中第N个排列。(N从0开始记)。N=sum(Si*(k-i)!)(1≤i≤k) 思路:根据N的值的性质,联系康拓展开,不妨发现第i位的值为剩下没用的数中从小到大第Si+1个。可以用线段树来记录区间内没有用的数的个数。 1 #inc 阅读全文
posted @ 2017-09-02 10:20 萌萌的美男子 阅读(162) 评论(0) 推荐(0)
摘要:1、hdu 1166 敌兵布阵(★☆☆☆☆) 题意:有n个营地,每个营地初始各有若干人,每次询问[l,r]营地的总人数,或者对某个营地加上或减去若干人数。 思路:线段树单点更新,区间查询 1 //线段树单点更新,区间查询 2 #include<iostream> 3 using namespace 阅读全文
posted @ 2017-09-01 14:28 萌萌的美男子 阅读(287) 评论(0) 推荐(0)
摘要:1、LA 4329 Ping pong 题意:若干个乒乓球选手住在一条街上,每两个人可以选择一个居住在他们中间的且乒乓球段位在他们中间的人作为裁判,来进行一场比赛。问可以进行多少种不同的比赛。 思路:找出a[i]左侧比a[i]段位低的人数,a[i]右侧比a[i]段位第的人数,则以a[i]作为裁判的比 阅读全文
posted @ 2017-08-31 15:22 萌萌的美男子 阅读(163) 评论(0) 推荐(0)
摘要:1、LA 3977 Summits 题意:如果一点是山顶的话,其走高度大于h-d的地形不能到达另外一个比其高的地方。问有多少个d型山顶。 思路:按照高度从高到低BFS: ①如果该点高度大于h-d并且没有访问过,则压入。 ②如果该点大于h-d并且有更高的地形能够BFS到达这里,则说明此次BFS到的所有 阅读全文
posted @ 2017-08-30 10:11 萌萌的美男子 阅读(210) 评论(0) 推荐(0)
摘要:1、LA 5908/UVA1517 Tracking RFIDs 题意:给出s个传感器的位置,以及其感应范围。如果某个方向上有墙,则该方向上感应距离减1.现在有w个墙,给出p个物品的位置,问其能被几个传感器探测到。 思路:传感器用set保存。之后传感器和物品之间是否有墙用线段是否相交来判断。 1 # 阅读全文
posted @ 2017-08-29 14:50 萌萌的美男子 阅读(302) 评论(0) 推荐(0)
摘要:1、uva 11988 Broken Keyboard 题意:给出键盘打字的顺序,遇到[到句首,遇到]倒句末。求最后输出的句子。 思路: ①单向链表数组模拟 1 #include<iostream> 2 #include<cstring> 3 #include<cstdio> 4 using nam 阅读全文
posted @ 2017-08-25 22:30 萌萌的美男子 阅读(159) 评论(0) 推荐(0)
摘要:1、poj 2236 Wireless Network 题意:一张图上分布着n台坏了的电脑,并知道它们的坐标。两台修好的电脑如果距离<=d就可以联网,也可以通过其他修好的电脑间接相连。给出操作“O x”表示修好x,给出操作“S x y”,请你判断x和y在此时有没有连接上。 思路:简单并查集。 1 # 阅读全文
posted @ 2017-08-25 15:43 萌萌的美男子 阅读(345) 评论(0) 推荐(0)
摘要:1、UVALive 3135 Argus 题意:有若干注册信息,每个id每经过一个周期返回一个id信息。求前k个返回信息的id。如果两个信息返回的时间点相同,则小的那个先返回。 思路:优先队列简单应用。 1 #include<iostream> 2 #include<queue> 3 #includ 阅读全文
posted @ 2017-08-25 13:10 萌萌的美男子 阅读(147) 评论(0) 推荐(0)
摘要:1、POJ 1251 Jungle Roads 题意:给出个村庄之间的道路及其维修费;从中选取一些路使道路的维修费最小且保证各村庄之间道路畅通。 思路:最小生成树模板。 ①Kruskal 1 #include<iostream> 2 #include<vector> 3 #include<algor 阅读全文
posted @ 2017-08-24 13:50 萌萌的美男子 阅读(276) 评论(0) 推荐(0)
摘要:1、POJ 3974 Palindrome 题意:求一个长字符串的最长回文子串。 思路:Manacher模板。 1 #include<iostream> 2 #include<algorithm> 3 using namespace std; 4 const int maxn = 1000010; 阅读全文
posted @ 2017-08-24 10:15 萌萌的美男子 阅读(221) 评论(0) 推荐(0)
摘要:1、UVa 10916 Factstone Benchmark(对数函数的利用--乘化加) 题意:给出年份,每个10年对应一个当前计算机可支持的字节位数,计算n! < max(max 为当前计算机能表示的最大整数),求最大n. 思路:字节数k = (year - 1940) / 10, 问题就转化成 阅读全文
posted @ 2017-08-22 23:57 萌萌的美男子 阅读(171) 评论(0) 推荐(0)
摘要:1、Hdu 2082 找单词 题意:单词A-Z具有1-26的价值,现有字母A-Z的个数num[i],求问在不超过价值为五十的情况下,有多少种字母的组合数. 思路:用指数代表价值,价值又为数组的下标;用系数代表组成该价值的方案数,方案数为数组中存的值。 1 #include<iostream> 2 # 阅读全文
posted @ 2017-08-22 23:52 萌萌的美男子 阅读(299) 评论(0) 推荐(0)
摘要:1、HDU 1711 Number Sequence 题意:给出两个数字串a,b,问能否使得数字串b为a的子串,能则输出最小的匹配位置。 思路:KMP模板题 1 #include<iostream> 2 #include<cstring> 3 using namespace std; 4 const 阅读全文
posted @ 2017-08-21 23:05 萌萌的美男子 阅读(289) 评论(0) 推荐(0)
摘要:1、CF 55D Beautiful numbers 题意:如果一个数能被自己各个位的数字整除,那么它就叫 Beautiful numbers。求区间 [a,b] 中 Beautiful numbers 的个数。 思路:一个数能被它的所有非零数位整除,则能被它们的最小公倍数整除,而1到9的最小公倍数 阅读全文
posted @ 2017-08-15 22:37 萌萌的美男子 阅读(260) 评论(0) 推荐(0)
摘要:一些链接: http://www.cnblogs.com/-sunshine/p/3358922.html http://www.cnblogs.com/grenet/p/3145800.html 1、hust 1017 Exact cover (Dancing Links 模板题) 题意:n*m的 阅读全文
posted @ 2017-08-13 23:10 萌萌的美男子 阅读(1226) 评论(0) 推荐(1)
摘要:1、hdu 1078 FatMouse and Cheese(搜索) 题意:小老鼠在n*n的矩阵里每个格子都藏了数目不定的奶酪,现在从(0,0)出发,每次最多走k格(每次只能从上下左右选一个方向走),每次只能走到奶酪数比当前格子奶酪数多的格子。求最多能获得多少奶酪。 思路:记忆化搜索。。DP? 1 阅读全文
posted @ 2017-08-11 10:27 萌萌的美男子 阅读(159) 评论(0) 推荐(0)
摘要:1、hdu 2444 The Accomodation of Students(判断二分图+最大匹配)(匈牙利模板) 题意:一共有n个学生,m对关系:A认识B。问能否将所有的人分成两批,每批之间的人都互相认识,如果可以,输出每批的人数。即判断是否为二分图,以及求二分图的最大匹配。 思路:判断是否为二 阅读全文
posted @ 2017-08-08 23:05 萌萌的美男子 阅读(440) 评论(0) 推荐(0)
摘要:模板 1、spfa+SLF+LLL优化 1 bool spfa() 2 {//寻找s到t的最短路,dis数组记录点i到s的距离,vis数组表示是否被访问,cnt数组判环 3 for (int i = 1; i <= n; i++) dis[i] = INF, vis[i] = false; 4 di 阅读全文
posted @ 2017-08-02 14:11 萌萌的美男子 阅读(252) 评论(0) 推荐(0)
摘要:Tarjan(离线)算法 思路: 1.任选一个点为根节点,从根节点开始。 2.遍历该点u所有子节点v,并标记这些子节点v已被访问过。 3.若是v还有子节点,返回2,否则下一步。 4.合并v到u上。 5.寻找与当前点u有询问关系的点v。 6.若是v已经被访问过了,则可以确认u和v的最近公共祖先为v被合 阅读全文
posted @ 2017-07-26 14:40 萌萌的美男子 阅读(901) 评论(0) 推荐(0)