- 博客(11)
- 资源 (1)
- 收藏
- 关注
原创 Developing Skills
题目传送门:点击打开链接#include #include #include #include using namespace std;//int a[100010];struct node{ int p1, p2;}a[100010];bool cmp(node a, node b) { return a.p2 > b.p2;}bool cmp1(node a
2015-09-29 18:31:22 463
原创 ACM_素数筛选
/**素数筛法,判断小于MAXN的数是不是素数。*notprime是一张表,为false表示是素数,true表示不是素数 */const int MAXN = 1000010;bool notprime[MAXN]; //值为false表示素数,值为true表示非素数void init() { memset(notprime, false, sizeof(notprime));
2015-09-29 12:20:32 421
原创 括号配对
题目传送门:点击打开链接//使用stl求解 #include #include #include #include using namespace std;string s ;int pos = 0;void del(string s, int & pos) { int flag = 1; for (int i =0; i<s.size() && flag; i++)
2015-09-24 08:29:03 412
原创 Codeforces__Raising Bacteria
题目传送门:Raising Bacteria//问题描述:一个盒子里面放一个细菌在一天可以增生两个细菌。 现在已知盒子里面细菌的个数,问你最初放多少个细菌可以增生盒子里面的细菌数量//输入:盒子中细菌的数量//输出:最初至少放的细菌数量//算法分析:从2开始累乘过程计数! #include #include #include using namespace std;type
2015-09-21 19:08:59 496
原创 dijkstra算法
/*********************问题:给定一个有向图G=(V,E)和源点s,求s到G中其它每个顶点的最短路径。Dijkstra算法的具体实现方法:(1)设置两个顶点的集合S和TS中存放已经找到到源点s最短路径的顶点,初始时集合S中只有一个顶点,即源点s。T中存放当前还没有找到最短路径的顶点,即T=V-S。(2)在集合T中选取当前长度最短的一条路径(s,...,v),
2015-09-20 11:03:45 589
原创 HDU--1212大数取模
大数取模问题。题目传送门:HDU1212#include using namespace std;char a[1010];int main(){ int b; while (cin >> a>> b) { int flag = 0; for (int i = 0; a[i] != '\0'; i++)
2015-09-18 21:57:35 411
原创 欧拉函数
欧拉函数是指:对于一个正整数n,小于n且和n互质的正整数(包括1)的个数,记作φ(n) 。通式:φ(x)=x*(1-1/p1)*(1-1/p2)*(1-1/p3)*(1-1/p4)…..(1-1/pn),其中p1, p2……pn为x的所有质因数,x是不为0的整数。φ(1)=1(唯一和1互质的数就是1本身)。对于质数p,φ(p) = p - 1。注意φ(1)=1.欧拉
2015-09-18 21:25:48 523
原创 HDU-1013九余数定理
题目传送门:HDU1013 九余数定理//题目描述:给定一个数,要求你求出它的每位上的数字之和,并且直到每位上的数字之和为个位时候输出它//输入:一个整数//输出:题目描述的结果//算法分析: 此题要用到9余数定理。 九余数定理 // 一个数对九取余后的结果称为九余数。 // 一个数的各位数字之和相加后得到的<10的数字称为这个数的九余数(如果相
2015-09-17 09:01:58 686 1
原创 HDU--1213并查集
题目传送门:HDU--1213//题意:ignatius过生日,客人来到,他想知道他需要准备多少张桌子。然而一张桌子上面只能坐上相互熟悉的人, //其中熟悉可定义成为A与B认识,B与C认识,我们就说A,B,C相互熟悉 。例如A与B熟悉and B与C熟悉,D与E熟悉,此时至少需要两张桌子。//输入:t表示样例个数,n表示朋友个数,朋友从1到n编号,m表示已知相互了解的对数,接着m行
2015-09-14 19:33:17 1609
原创 HDU--1232畅通工程
//简单入门的并查集 #include using namespace std;int pre[1010];int find(int x){ int r = x; while (pre[r] != r) r = pre[r]; int i = x, j; while (i != r) { j = pre[i]; pre[i] = r; i = j;
2015-09-14 17:11:40 358
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人