- 博客(152)
- 资源 (2)
- 收藏
- 关注
原创 POJ-2492 A Bug's Life 带权并查集
#include #include #include using namespace std;const int maxn=20010;int n,m,p[maxn],sex[maxn];int find(int x){ if(p[x]==-1) return x; int y=p[x]; p[x]=find(p[x]); sex[x]=(sex[y
2014-03-21 16:23:23 447
原创 POJ-2524 Ubiquitous Religions 并查集
超水,最基础的应用,跟HDU的畅通工程一个难度#include #include #include #include #include #include #define maxn 50001using namespace std;int father[maxn];int n,m;void init( ){ for(int i=0;i<maxn;i++) { fat
2014-03-21 00:34:50 547
原创 POJ 1611--The Suspects 并查集
有一个学校,有N个学生,编号为0-N-1,现在0号学生感染了,凡是和0在一个社团的人就会感染,并且这些人如果还参加了别的社团,他所在的社团照样全部感染,求感染的人数。#include #include #include #include #include #include #define maxn 30001using namespace std;int father[maxn
2014-03-21 00:20:28 493
原创 codeforces 404B Marathon
挺好的一道题,结果因为自己粗心错掉了,边界数据给漏掉了。题意是一个运动员绕一个边长为a的正方形跑道跑,从(0,0)开始,每跑d米要喝水,喝nci,问n次的坐标。做法:(运动员在第几条线段上前进的距离+d)/a,得出可以前进多少线段,结果mod4 分别匹配就好了,循环处理n次#include #include #include #include #include using n
2014-03-20 09:05:35 595
原创 POJ-1308 并查集
#include #include #include #include #include #include #include #define maxn 10005using namespace std;int bin[maxn],vis[maxn];int find(int x){ int r=x; while(bin[r]!=r) { r=bin[r]; }
2014-03-18 23:04:18 595
原创 POJ-2155 Matrix 二维树状数组
#include #include #include #include #include #define maxn 1005using namespace std;int c[maxn][maxn],n;int bit(int n){ return n&(-n);//二进制 }int sum(int n,int m){ int ans=0; for(int i=n;i
2014-03-18 15:57:17 536
原创 ZOJ 3710 Friends 暴力
DescriptionAlice lives in the country where people like to make friends. The friendship is bidirectional and if any two person have no less than kfriends in common, they will become friends in sev
2014-03-11 20:19:04 570
原创 poj 3264 RMQ与线段树
用线段树和RMQ都可以做的题,给出一个数组,多次查询一个区间内之间最大值与最小值的差RMQ算法,使用一个二维数组预处理,使得查询时实现O(1)的查询效率.用一个二维数组f(i,j)记录区间[i,i+2^j-1](持续2^j个)区间中的最小值。其中f[i,0] = a[i]; 所以,对于任意的一组(i,j),f(i,j) = min{f(i,j-1),f(i+2^(j-1),j-1)}来
2014-03-01 19:56:01 565
原创 Codeforces 397B
同水题,第一反应是对的,结果越做越偏,简直太逗了。。。,后来改过了还因为_int 64 怒错,蠢死了。。#include using namespace std;int main(){ int t; __int64 n,l,r; int k; while(cin>>t) { while(t--) {
2014-02-27 12:14:26 553
原创 Codeforces 397A
特别简单的一道题做的特别逗,受不了自己了。#include #include #include using namespace std;int a[1001];int main(){ int t; int n,m,p,q; int i; int count=0; memset(a,0,sizeof(a)); cin>>t; cin>>n>>m; for(i=n+1;
2014-02-27 12:12:39 646
原创 HDU 1272-小希的迷宫 并查集初级
#include #include #include #include #include #define maxn 100010using namespace std;int father[maxn],mark[maxn];int flag;void init()//初始化 { for(int i=0;i<maxn;i++) { father[i]=i; mark[
2014-02-18 19:47:51 488
原创 hdu 1232-畅通工程 并查集入门
被图论搞得死去活来,很多基础知识不熟悉,似懂非懂。#include #include #include #include #include using namespace std;int bin[1002];int find(int x)//寻找根(父节点) { int r=x; while(bin[r]!=r) { r=bin[r]; }}void merge
2014-02-18 19:23:50 507
原创 LA3902 Network
#include #include #include #include #include using namespace std;const int maxn=1010;vectorgr[maxn],nodes[maxn];int n,s,k,fa[maxn];bool covered[maxn];void dfs(int u,int f,int d){ fa[u]=f;/
2014-02-17 19:47:16 597
原创 BFS POJ2243- Dario
#include #include #include #include #include #include #define N 10using namespace std;int x1,y1,x2,y2;int sum;int dx[8]={1,2,2,1,-1,-2,-2,-1};int dy[8]={2,1,-1,-2,-2,-1,1,2};queuexx;queue
2014-01-31 17:16:38 495
原创 HASH入门 POJ1840
#include #include #include #include #include using namespace std;short hash[25000001];int main(){ int a1,a2,a3,a4,a5; while(cin>>a1>>a2>>a3>>a4>>a5) { memset(hash,0,sizeof(hash)); for(i
2014-01-27 21:23:20 521
原创 POJ-2503 Babelfish 二分+快排
题目的意思:就像查找一本字典,根据输入的条目和要查询的单词,给出查询结果(每个单词长度不超过10)刚开始用STL里面的map去做,结果华丽丽的TLE了,用了快排和二分去做#include #include #include #include #include using namespace std;const int MAX=100001;typedef struct{
2014-01-27 21:20:18 623
原创 POJ 2485 最小生成树
这道题和1789区别不到,数据量大,用Cin结果T了#include #include #include #include using namespace std;const int inf=65540;int dist[501][501];int n;int prim(void){ int s=1; int m=1; int map[501]; memse
2014-01-26 16:24:50 473
原创 POJ 1789-T H 最小生成树初接触
题目大意:输入几个字符串,每个字符串可以转化为别的字符串,两个字符串同位置不同的数目称为转化值,要求找到转化值最小的方案。题目可以看成顶点全部连通的完全图,找出最小生成树,权值即为转化值。#include #include #include #include #include #include #include using namespace std;const int inf
2014-01-26 16:18:05 571
原创 二分法 POJ-3104 Drying
#include #include #include #include #include #include using namespace std;long long n;long long a[100010];int main(){ long long maxv=0; long long high,low=1; long long i,j,k; while(cin>>
2014-01-25 15:45:29 520
原创 二分法入门Poj 3122-Pie
好多二分题一看题目头就晕。。。挑个容易理解的下手#include #include #include #include #include const double pi=3.14159265359;const double esp=1e-6;using namespace std;int main(){ int t; int n,m; int i,j; int cou
2014-01-21 17:48:30 602
原创 HDU 1421 动态规划
#include #include #include #include #include using namespace std;int f[2001][1001];int a[2001];int getf(int i,int j){ if(j*2>i) { return 1000000000; } if(j==0) { return 0; } return
2014-01-18 14:09:03 604
原创 动态规划-hdu2571
#include #include #include #include #include using namespace std;int a[21][1005];int max(int n,int m){ return n>m? n:m;}int main(){ int i,j,k,temp; int t; int n,m; cin>>t; while(t--)
2014-01-18 13:46:10 1190
原创 uva11077 Find the Permutations
Sorting is one of the most used operations in real life, where Computer Science comes into act. It is well-known that the lower bound of swap based sorting is nlog(n). It means that the best possible
2013-12-10 16:38:00 489
原创 CF 371A - K-Periodic Array
This task will exclusively concentrate only on the arrays where all elements equal 1 and/or 2.Array a is k-period if its length is divisible by k and there is such array b of length k, that a is
2013-12-09 20:40:27 808
原创 CF 371B - Fox Dividing Cheese
B. Fox Dividing Cheesetime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputTwo little greedy bears have found tw
2013-12-09 20:39:02 875
原创 UVA 11729 Commando War
最近开始有目的性做题,先从UVA开始吧题目很简单,不过算法经典给的做法感觉并不适合我,自己用结构体写了一发A了。思路就是先交代执行任务较长的任务,然后统计每个任务完成时间,循环一遍找最大值即可。#include #include #include #include #include #include using namespace std;struct node{ i
2013-12-09 19:37:03 527
原创 算法经典-勇者斗恶龙
第一遍读完以后感觉需要排序然后嵌套循环而且第一重龙头要倒着循环,第一次写出来程序报错,想了想其实没那么难,排序后第n位的龙头最理想也是由第n位的勇士砍掉,所以其实很简单,思维还是太僵化了。#include #include #include #include #include #include using namespace std;int main(){ int n,m; i
2013-12-09 17:33:19 1387
原创 CF———— Valera and Contest
Valera loves to participate in competitions. Especially in programming contests. Today he has participated in the contest with his team, consisting of n students (including Valera). This contest was
2013-11-30 01:38:38 871
原创 HDU 1231 (最长连续子序列)
#include #include #include #include #include #include #include #include using namespace std; #define max(a,b) a>b?a:b#define min(a,b) a<b?a:bint n;int a[10010];int main
2013-11-17 20:18:15 432
原创 暑假小结
暑假基本没在COJ做题,保持了以前的240+,最多在POJ上看到熟悉的题目做掉以后去COJ也交一下,POJ刷到100多道。 各种原因当然还有自己懒导致每天只有下午有条件做题,有时候出远门还做不了,POJ也只有不多的部分是算法题,大部分是队里给的POJ水题目录里面的,只是对英文题更熟悉和有套路了一点。算法方面实在长进不大,只是一些简单算法如01背包,筛法求素数更熟练了一点,在家确实很没有学
2013-08-19 17:19:21 632
原创 poj--3438--LOOK and SAY
水题,之前在浙大一次比赛中做过#include #include using namespace std;int main(){ char a[10000]; int t,s=1; cin>>t; while(t--) { cin>>a; for(int i=0;a[i]!='\0';i++) { if(a[i+1]==a[i]) { s++;
2013-08-17 16:47:33 777
原创 poj1401--Factorial
求的是N!中末尾0的个数,即包含因子10的个数。10=5*2,因子10的个数也就是因子2的个数与因子5的个数中较小的那个,N!=1*2*3...*N,其中2的个数一定不少于5的个数,所以要求的其实就是N!中5的个数。#include #include #include using namespace std;int f(int n){ int s=0,i; for
2013-08-17 16:40:36 586
机器学习实战
2017-10-20
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人