先利用筛法完成素数打表
再从小到大判断即可
#include
#include
#include
#include
#include
#include
using namespace std;
const int Max = 1e6 + 50;
int n;
int isPrime[Max];
int tblPrime[Max];
int lenPrimes;
void initTbl...
分类:
其他好文 时间:
2014-08-16 17:10:30
阅读次数:
129
思路:给定一系列时刻表,求能满足各个时刻的最小火车数量。打眼一看, 把此题归入到最大流,仔细一想不符合流网络的规律,换思路。由于是一个最优化问题,自然想到动态规划和贪心。最后确定贪心。从最早出发的火车切入,到目的地后便可以选择下一次满足的时刻表,贪心思想找最近的一个时刻表(关于贪心的证明可以参看《图...
分类:
其他好文 时间:
2014-08-14 16:17:18
阅读次数:
222
题意:使用最小的复制/黏贴次数,使得语句的条数恰好为n
思路:贪心思想,因为复制是所有条数翻倍,所以每次都取最大的条数*2
PS:天真的认为是n = -1时退出,所以WA了好几次。
#include
#include
#include
#include
using namespace std;
int main() {
int n, t = 1;
...
分类:
其他好文 时间:
2014-08-06 23:07:12
阅读次数:
272
贪心思想. 先按左端点排序. 然后一个个挑. 如果当前的右端点<=上一个右端点,说明看当前这个,比看上一个所占时间要少, 用当前这个代替上一个节目; 如果 当前的左端点 大于或等于上一个的右端点. 说明可以两个都看,sum++;...
分类:
其他好文 时间:
2014-07-31 00:05:15
阅读次数:
215
淋漓尽致的贪心思想
波谷一定是一位数,波峰一位数不够大的时候添加到两位数就一定够大了的。
当在寻找波谷碰到零了就自然当成波谷。
当在寻找波峰时碰到零时,将前面的波谷加到前一个波峰上,让当前的零做波谷,使得波谷的值尽量小,这就是本题最关键的贪心思想,一直想不到。
代码中:a表示前一个值,b表示当前考虑的值,tag为偶数时表示正在寻找波谷,奇数时在寻找波峰。
#include
#in...
分类:
其他好文 时间:
2014-07-24 23:38:53
阅读次数:
278
题解
用类似哈夫曼树的思想去考虑,每次选取两个较小的点合并,然后把合并后的放回原集合。用一个小根堆去维护即可。
注意首先,C++的优先队列默认是大顶堆,所以需要改写;其次,改写之后的堆是没有clear()方法的,所以务必记住队列的清空!...
分类:
其他好文 时间:
2014-06-25 07:34:58
阅读次数:
274
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1520
题目大意:给定一棵关系树,每个节点有个权值,子节点和父节点不能同时选,问最后能选的最大价值是多少?
解题思路:树形DP入门题。由于子节点与父节点不能同时选,有人可能会用贪心思想,二者选其一肯定最优。其实不然,有可能父节点和子节点都不选,而要选子孙节点。不过只要再往深点想下,就可以得出...
分类:
其他好文 时间:
2014-06-05 07:40:29
阅读次数:
255
【题目】
Divide two integers without using multiplication, division and mod operator.
【题意】
计算两个数的商,不能使用乘、除、取余操作
【思路】
用加法,确定多少除数相加其和恰好<=被除数
为了提高算法效率,利用贪心思想,采用滚雪球式的翻倍叠加策略,使和快速逼近被除数
集中特殊情况需要注意:
1. 结果是负数
...
分类:
其他好文 时间:
2014-05-18 10:42:00
阅读次数:
259
题目大意:给出一个范围M,然后给出若干的区间,以0 0 终止, 要求用最少的区间将0 ~M 覆盖,输出最少个数以及方案。
解题思路:典型的区间覆盖问题,算法竞赛入门经典P154上有讲。
/*author: charkj_z */
/*time: 0.108s */
/*rank: 674 */
/*为什么不把没用的地方去掉? 因为去掉了我觉得不像我能写出来的*/
/*Ac code :...
分类:
其他好文 时间:
2014-05-09 02:26:29
阅读次数:
275
非常经典的贪心题目,没有严格证明的话,肯定是YY着做的,题意:
约翰要从A到B,途中会经过N个村庄,他会带N只猪,然后卖掉,每个村庄卖一只,第i个村庄的人出价pi 每斤,从A到第i个存在的距离为disi,而且运一只猪需要话花费t * disi每斤,t一开始会给定
输入第一行n,t
接下来第一行 n个数,代表各个猪的重量
在接下来第二行n个数,代表每个村庄距离A的距离dis
在接下来第三行...
分类:
其他好文 时间:
2014-05-07 07:07:13
阅读次数:
392