随笔分类 - ACM
国际大学生程序设计大赛
摘要:题目链接:nyoj 28 就是个简单的高精度,只是一开始我打表超内存了,然后用了各种技巧硬是把内存缩到了题目要求以下(5w+kb),感觉挺爽的,代码如下: 1 #include 2 #include 3 #include 4 #include 5 using namespace std; 6 ...
阅读全文
摘要:hdu 4055: 一开始我想的递推方向想得很复杂,看了别人的博客后才醍醐灌顶: 参照他的思路和代码: 1 #include 2 #include 3 #include 4 using namespace std; 5 const int mod = 1000000007; 6 const ...
阅读全文
摘要:题目链接:poj 1144 题意就是说有 n(标号为 1 ~ n)个网点连接成的一个网络,critical places 表示删去后使得图不连通的顶点,也就是割顶,求图中割顶的个数。 直接上大白书上的模板即可,只是输入也有点卡人,我竟然傻傻的用手写的输入挂来处理,看了别人的博客才知道用 sc...
阅读全文
摘要:有时候用输入挂并不只是为了效率,对于一些以行末为结束(即 '\n' 或 '\r')的若干个数据的读入,此时用输入挂来处理就显得很有必要了,以判断字符是否为'\n' 或 '\r' 来结束输入,否则单用 scanf 的话无法达到上述效果。1. 先来一个单纯用于正数读入,并且题目已明确给出输入的整数的...
阅读全文
摘要:vjudge 上题目链接:uva 11728 其实是个数论水题,直接打表就行: 1 #include 2 #include 3 using namespace std; 4 5 int ans[1003]; 6 inline void init(int n = 1000) { 7 f...
阅读全文
摘要:前几晚 BC 的第二题,官方给出的题解是: 然后我结合昨天刚看的 Manacher 算法试着写了下,发现 pre、suf 数组挺难构造的,调试了好久,然后就对中间进行枚举了,复杂度应该是 O(n2) 吧,我第一次交时超时了,以为真的要用什么暴力压位,可是我还不会啊,然后作了一些少许的优化提交本...
阅读全文
摘要:今天打算补前晚 BC 的第二题,发现要用到能在 O(n) 时间求最大回文子串长度的Manacher 算法,第一次听,于是便去百度了下,看了大半天,总算能看懂了其思想,至于他给出的代码模板我没能完全看懂,只好自己试着实现,发现理解了思想后还是能实现出来的,用自己的风格去写更好理解,先附上讲解Man...
阅读全文
摘要:这题很明显是签到题,可我比赛时却没做出,赤裸裸的爆零了,真悲剧…… 看了题解后才知道直接暴搜就行,只是需要把它们从大到小排序后再搜,我当时就没想到。。。不想再多说了一开始我直接枚举所有情况: 1 #include 2 #include 3 #include 4 #include 5 using...
阅读全文
摘要:vjudge上题目链接:Determine the Shape 第二道独自 A 出的计算几何水题,题意就是给你四个点,让你判断它是哪种四边形:正方形、矩形、菱形、平行四边形、梯形 or 普通四边形。 按照各个四边形的特征层层判断就行,只是这题四个点的相对位置不确定(点与点之间是相邻还是相对并...
阅读全文
摘要:vjudge上题目链接:Huge Mods 附上截图: 题意不难理解,因为指数的范围太大,所以我就想是不是需要用求幂大法: AB % C = AB % phi(C) + phi(C)% C ( B > phi(C) ) 呢?后来发现确实需要用到,而且因为它有很多重指数,所以需要 dfs,深搜...
阅读全文
摘要:题目链接:hdu 5317 这题看数据量就知道需要先预处理,然后对每个询问都需要在 O(logn) 以下的复杂度求出,由数学规律可以推出 1 2 #include 3 #include 4 using namespace std; 5 const int N = 1000006; 6 7 ...
阅读全文
摘要:题目连接:B. Working out 我想了很久都没有想到怎么递推,看了题解后试着自己写,结果第二组数据就 wa 了,后来才知道自己没有判选择的两条路径是否只是一个交点。 大概思路是:先预处理出每个格子到四个角落格子的路径最大数值,然后枚举两个人相遇的交点格子,枚举 A、B 的进来和出去方...
阅读全文
摘要:题目链接:hdu 2191 题意很明显,数据规模也比较小,不过这题的数据还是很强的,多重背包我之前一直没有了解透切,所以也 wa 了不知多少次了,先来个朴素的比较暴力的版本: 1 #include 2 #include 3 #include 4 using namespace std; 5 #...
阅读全文
摘要:经典的二分图最大匹配问题,因为匈牙利算法我还没有认真去看过,想先试试下网络流的做法,即对所有女生增加一个超级源,对所有男生增加一个超级汇,然后按照题意的匹配由女生向男生连一条边,跑一个最大流就是答案(以上所有边容量均为 1 ),我是直接上 Dinic 算法的模板的: 1 #include 2...
阅读全文
摘要:题目链接:298 点的变换 这题放在矩阵快速幂里,我一开始想不透它是怎么和矩阵搭上边的,然后写了个暴力的果然超时,上网看了题解后,发现竟然能够构造一些精巧的矩阵来处理,不得不说实在太强大了!http://blog.csdn.net/lyhvoyage/article/details/39755...
阅读全文
摘要:题目链接:hdu 1242 这题也是迷宫类搜索,题意说的是 'a' 表示被拯救的人,'r' 表示搜救者(注意可能有多个),'.' 表示道路(耗费一单位时间通过),'#' 表示墙壁,'x' 代表警卫(耗费两个单位时间通过),然后求出 'r' 能找到 'a' 的最短时间,找不到输出 "…………"(...
阅读全文
摘要:题目链接:hdu 1253,题目大意:从一个立方体的左下角走到右上角(两点间的连线为长方体的体对角线)的最少时间(步数),走不到或者最少时间达不到要求输出 -1,否则输出该时间。 因为要求"最少"之类的,所以很容易想到广搜,没错,这是 bfs 的裸题,只是它的状态数是个三维数组,转移的状态(方...
阅读全文
摘要:水题,求连通分量的个数,深搜一遍即可,之所以这么水还写下来,是因为样例一组有误的数据弄得我调试了一个多小时,白白浪费了很多精力和时间。最后一组数据的两个5后面多了一个空格:我用 getchar 来接收字符,所以因为它这个无故多出来的空格使得后面的字符全乱了,调试输出时才有了千奇百怪的结果,不得不...
阅读全文
摘要:这题是深搜的典型题,要在时间 t 内准确到达终点,处理不好要么 wa 要么 TLE。有两个很重要的剪枝:一是奇偶剪枝,必须提前判断好 'S'和'D' 之间的曼哈顿距离和时间 t 是否同奇偶,否则会 TLE;二是判断 '.' 的数量是否大于或等于 t-1,这个能使程序快很多,但不是必要的,我试了下...
阅读全文
摘要:题目链接:hdu 4965,题目大意:给你一个 n*k 的矩阵 A 和一个 k*n 的矩阵 B,定义矩阵 C= A*B,然后矩阵 M= C^(n*n),矩阵中一切元素皆 mod 6,最后求出 M 中所有元素的和。题意很明确了,便赶紧敲了个矩阵快速幂的模板(因为编程的基本功不够还是调试了很久),然...
阅读全文

浙公网安备 33010602011771号