6 dominating大树置林

尚未进行身份认证

我要认证

l love acm!

等级
TA的排名 11w+

SGU 106

题意:给出方程ax+by+c=0,求出有多少对整数解(x,y),满足X1<=x<=X2, Y1<=y<=Y2; 思路: 若a=0,b=0,c=0,为(X2-X1+1)*(Y2-Y1+1); 若a=0,b=0,c!=0或c%gcd(a,b)!=0,则无解; 否则,计算满足条件的x所在区间,满足条件的y所在区间,求两区间交集的元素的个数; 在SGU

2015-11-05 11:59:54

poj 1733 Parity game(种类并查集)

题意: 有0或1构成的一段区间总长度为n,m个询问,每次询问一段区间1的个数为奇数还是偶数,问从第一个询问开始,前几个询问正确的个数有几个; 思路: n<=10^9,m<=5000;很多数用不到,所以可以离散化一下; 将和为奇数的区间标记为1,为偶数的区间标记为0; 对于每个询问,合并操作时,如果两区间重合且奇偶性之和与询问所给的奇偶性相同,则该询问正确,否则错误

2015-07-28 11:55:02

poj 1962 Corporative Network(带权并查集)

题意: 在n个站点间建电线;两种操作: I a b表示以a为中心站点建线; E a表示查询以a站点为中心,相连的电线总长度; 思路: 带权并查集;中心站点就是父亲,电线长度为权值;#include<cstdio>#include<cstring>#include<cmath>#include<algorit

2015-07-28 09:37:14

运算符重载

重载矩阵加法,减法,乘法;#include<cstdio>#include<cstring>struct node{ int matrix[50][50];};int n;inline node operator +(const node &y,const node &x){ node xx; for(int i=0;i<n;i++) {

2015-06-06 22:05:41

poj 1006 中国剩余定理

题意:求数n,是(n+d)%23==p,(n+d)%28==e,(n+d)%33=i;转载请注明出处:http://www.cnblogs.com/dashuzhilin/;思路:中国剩余定理。利用同余的加性,将(n+d)拆成三个数a,b,c,        使a%23==p,a%28==0,a%33==0;        使b%23==0,b%28==e,b%33

2015-04-04 16:51:21

poj 2488 暴搜

题意:给定棋盘大小,求是否能马步遍历所有格子,若能遍历按字典序给出遍历序列。思路:搜索过程保存路径。#include#include#includeusing namespace std;int x[8]={-1,1,-2,2,-2,2,-1,1};int y[8]={-2,-2,-1,-1,1,1,2,2};int vis[510][505];int n,m,a[5050]

2015-03-28 19:56:09

poj 1094 Sorting It All Out

题意:n个数m组比较,判断三种情况:有环,有序,无序;思路:拓扑排序。初始时度数为0的点数大于1时,无序;度为0个数等于1时,有序;不存在度为0的数时,无序;#include#include#includeusing namespace std;int n,m;int mm[505][505],hh;int q[500010],indegree[500010];int top

2015-03-14 21:18:12

图论题大合集

转载出处:http://blog.csdn.net/ffq5050139/article/details/7832991=============================以下是最小生成树+并查集======================================【HDU】1213   How Many Tables   基础并查集★1272   小希的迷宫   

2015-03-14 18:14:02

hdu 3342 Legal or Not

题意:判断有无环路;思路:拓扑排序;两种写法:结构体+指针:#include#include#includeusing namespace std;int n,m;struct node{ int du; node *next;}q[50010];int topo(){ node *p; int *shu=new int[50010]

2015-03-14 15:41:46

hdu 2647 Reward

题意:给出n对员工需求,每队包含两个员工编号,要求前者奖金大于后者,求所有员工的奖金数;思路:拓扑排序判定有无环;#include#include#includeusing namespace std;int n,m;struct node{ int du; node *next;}q[500010];int topo(){ int i,j,k

2015-03-14 13:54:29

hdu 1286 找新朋友

题意:求一个数约数为1的个数。思路:裸裸的欧拉函数。#include#include#includeusing namespace std;int eular(int n){ int ans=n; for(int i=2;i*i<=n;i++) { if(n%i==0) { ans-=ans/i;

2015-03-13 23:58:31

hdu 2094 产生冠军

题意:给出n对选手姓名,每对表示前者赢后者,求整场比赛是否有冠军;思路:将名字用数字表示,离散化,然后就是裸裸的拓扑排序,只需判断初始时入度为0的是否唯一;#include#include#includeusing namespace std;int n,m,i,j,k,con;int mm[1001][1001],indegree[500010];char s1[500010

2015-03-13 20:48:00

hdu 1285 确定比赛名次

题意:给出每两个队伍的胜负关系,求排名。思路:裸裸的拓扑排序。#include#include#includeusing namespace std;int n,m,p1,p2;int indegree[500010],match[505][505],flag;void tuopu(){ int i,j,k,flag=0; for(j=1;j<=n;j++)

2015-03-13 14:18:52

zoj 3787 Access System

题意:给出一系列时刻数和一个时长,求不在同一时间段中的最少个数和编号;思路:sort排序,二维的sort,在排序的同时保存每个数的编号;#include#include#includeusing namespace std;int h,m,s;int id[500010];struct node{ int sum,id;}q[500010];int cmp(nod

2015-03-11 20:25:03

zoj 3785 What day is that day?

题意:求从1的1次方加到n的n次方的和对7取余所得结果。思路:打表找规律。所谓打表就是把部分所求结果保留下来,通过观察已有数据找到规律,或在程序中直接判定出所求规律。对于这种找周期的题,打表最适合不过了!!!打表程序:#include#includeint a[50010],T,n,m,i,j,k,flag;int work(int n){ int i,sum=1;

2015-03-11 19:33:31

hdu 1711 Number Sequence

思路:裸裸的kmp算法;#include#includeint next[5000100],a[5000100],b[5000010];int n,m;void getnext(){ int i=0,j=-1; memset(next,0,sizeof(next)); next[0]=-1; while(i<m) { if(j=

2015-03-11 16:53:48

hdu 3911Black And White

题意:给定一个只包含0和1的字符串,每次操作将指定区间中的0变为1,1变为0,求指定区间最长连续1的长度;思路:线段树区间异或,成段更新;#include#include#include#define lson rt<<1#define rson rt<<1|1using namespace std;int sum[500010],lazy[500010];int preb[

2015-03-08 23:54:48

hdu 1698 just a hook

题意:一根钩子原来每单位长度价值均为1,每次改变一段区间的价值,求处理后钩子的总价值。思路:线段树区间更新,区间求和,裸裸的模板题。#include#include#includeusing namespace std;int sum[500010],lazy[500010];void pushup(int rt){ sum[rt]=sum[rt<<1]+sum[rt<

2015-03-08 12:51:30

poj 2411

题意:1*2的砖块填满n*m的地板思路:i行j列由i-1行j列推得,i-1行j列处竖放得到或i行横放得到;枚举i行横放的方法数和i-1行的状态数;#include#includelong long f[30][1<<12],i,j,height,width,saya=1;void sayatime(int i,int s1,int pos){ if(pos==width)

2015-03-08 00:45:04

Codeforces 194B

题意:在n*n的上从左下角开始,每次走n+1个点画一个叉,问回到起点时一共画几个叉;思路:gcd;#include#include#include#includeusing namespace std;long long n,m,num,t,a,b,r;int i,j,k,rcount,shu,flag,yu,len;long long gcd(long long a,lon

2015-02-05 21:38:33

查看更多

勋章 我的勋章
    暂无奖章