09 2016 档案
摘要:题目链接:bzoj2458: [BeiJing2011]最小三角形 学习推荐博客:分治法编程问题之最接近点对问题的算法分析 题解:先将所有点按x值排列,然后每次将当前区间[l,r]分成左右两半递归求解周长最小三角形。考虑到两半区间之间可能有连成最小三角形的情况,设dd为两半区间中最小三角形周长的最小
阅读全文
摘要:题目链接:poj3669 Meteor Shower 我只想说这题WA了后去看讨论才发现的坑点,除了要注意原点外,流星范围题目给的是[0,300],到302的位置就绝对安全了。。。 1 #include<cstdio> 2 #include<cmath> 3 #include<queue> 4 #i
阅读全文
摘要:1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<cstring> 5 #include<algorithm> 6 #define CLR(a,b) memset((a),(b),sizeof(a)) 7 usi
阅读全文
摘要:题目链接:poj1129 Channel Allocation 题意:要求相邻中继器必须使用不同的频道,求需要使用的频道的最少数目。 题解:就是求图的色数,这里采用求图的色数的近似有效算法——顺序着色算法(实质是一种贪心策略:在给任何一个顶点着色时,采用其邻接顶点中没有使用的,编号最小的颜色)。 注
阅读全文
摘要:题目链接:poj2284 That Nice Euler Circuit 欧拉公式:如果G是一个阶为n,边数为m且含有r个区域的连通平面图,则有恒等式:n-m+r=2。 欧拉公式的推广: 对于具有k(k≥2)个连通分支的平面图G,有:n-m+r=k+1。 题意:给出连通平面图的各顶点,求这个欧拉回路
阅读全文
摘要:题目链接:hdu5884 Sort 题意:n个有序序列的归并排序.每次可以选择不超过k个序列进行合并,合并代价为这些序列的长度和.总的合并代价不能超过T, 问k最小是多少。 题解:先二分k,然后在k给定的情况下,构造k叉哈夫曼树。O(nlogn)的做法:先对所有数排序,另外一个队列维护合并后的值,取
阅读全文
摘要:题目链接:hdu5878 I Count Two Three 题意:给出一个整数n, 找出一个大于等于n的最小整数m, 使得m可以表示为2^a * 3^b * 5^c * 7^d. 题解:打表预处理出所有满足要求的数,排个序然后二分查找解决。 1 #include<cstdio> 2 #incl
阅读全文
摘要:题目链接:hdu5879 Cure 题解:用字符串输入。n很大时答案趋近与(π^2)/6。 1 #include<cstdio> 2 #include<algorithm> 3 #include<iostream> 4 #include<cstring> 5 #include<queue> 6 #i
阅读全文
摘要:题目链接:hdu5882 Balanced Game 题解:每种手势的攻防数一样,不难想到n为奇数时游戏平衡。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 using namespace std; 5 6 int ma
阅读全文
摘要:题目链接:hdu5883 The Best Path 比赛第一遍做的时候没有考虑回路要枚举起点的情况导致WA了一发orz 节点 i 的贡献为((du[i] / 2) % 2)* a[i] 欧拉回路的起点贡献多一次,欧拉通路起点和终点也多一次。 代码如下:
阅读全文
摘要:题目链接:poj1273 Drainage Ditches 呜呜,今天自学网络流,看了EK算法,学的晕晕的,留个简单模板题来作纪念、、、 1 #include<cstdio> 2 #include<vector> 3 #include<queue> 4 #include<cstring> 5 #in
阅读全文
摘要:题目链接:poj1258 Agri-Net 这题我上个月做过,是个大水题,今天看见有人用prim+heap做的,就学习了下。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<queue> 5 #inclu
阅读全文
摘要:poj3159 Candies 这题实质为裸的差分约束。 先看最短路模型:若d[v] >= d[u] + w, 则连边u->v,之后就变成了d[v] <= d[u] + w , 即d[v] – d[u] <= w。 再看题目给出的关系:b比a多的糖果数目不超过c个,即d[b] – d[a] <= c
阅读全文
摘要:题目链接:hdu5876 Sparse Graph 详见代码。。 1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<queue> 5 #include<vector> 6 #include<set> 7 u
阅读全文
摘要:做了很久还是参考了别人的答案orz,其实也不难啊。我要开始学一下怎么写搜索了。。。 题目链接:poj2676 Sudoku 题解:暴力搜索,DFS每个空白格子所放数字。 1 #include<cstdio> 2 #include<iostream> 3 #include<cstring> 4 #in
阅读全文
摘要:题目链接:BZOJ1029: [JSOI2007]建筑抢修 题解:贪心思想,按结束时间从小到大排序,选花费时间尽量短的建筑维修,用堆维护。 1 #include<stdio.h> 2 #include<queue> 3 #include<algorithm> 4 using namespace st
阅读全文
摘要:本原勾股数组(简写为PPT)是一个三元组(a,b,c),其中a,b,c没有公因数,且满足a^2 + b^2 = c^2。例如下面是一项本原勾股数组: (3,4, 5),(5,12,13),(8,15,17),(7,24,25),(9,40,41),(11,60,61),(28,45,56),(33,
阅读全文
摘要:坊间风闻“水王”发帖数目超过帖子总数的一半,如果你有一个当前论坛上所有帖子的列表,其中帖子作者的ID也在表中,你能快速找出这个传说中的水王吗? 题意即找出数组中超过一半的数。 最直接的方法是对所有ID排序,然后再扫描一遍排好的ID列表,统计各个ID出现的次数,若某个ID次数超过总数的一半则输出这个I
阅读全文
摘要:题目链接:51nod 1613 翻硬币 知乎上的理论解法http://www.zhihu.com/question/26570175/answer/33312310 本题精髓在于奇偶性讨论。 若 n 为奇数: 若 k 为偶数 无解 若 k 为奇数 p 为不小于 n/k 的最小奇数 若 n 为偶数:
阅读全文
摘要:我好饿吖, 为什么我现在在教室闻到了饭香味。。。 问题1.给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N=10,N=3 628 800, N!的末尾有两个0。 (好巧吖,昨天做的51nod 1003就是这个题,来分析一下吧!) 看到这题,你想完整计算N!的值吗?那可能溢出哦。其实这个问题
阅读全文
摘要:问题:对于一个字节(8bit)的无符号整型变量,求其二进制表示中“1”的个数,要求算法的执行效率尽可能高。 解法一:除、余操作 我们知道,对于二进制操作,除以一个2,原来的数字将会减少一个0,如果除的过程中有余,那么就表示当前位置有一个1,所以可通过相除和判断余数的值来分析。 【时间复杂度O(log
阅读全文

浙公网安备 33010602011771号