上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 42 下一页
求割点数很简单难在一些细节到现在还不清楚为什么一开始就设置dfn为1为什么会错错误的代码View Code #include<stdio.h>#include<string.h>int n,son,ans;int map[1000][1000];int dfn[1000],low[1000];int vis[1000];int tdfn;int flag[1000];int min(int a,int b){ return a<b?a:b;}void dfs(int u){ int v; for(v=1;v<=n;v++){ if(map[u][v]){ . Read More
posted @ 2011-10-10 12:19 Because Of You Views(274) Comments(0) Diggs(0)
View Code dp[i][j]>?=dp[i][k]+dp[k+1][j];if(s[i]=='('&&s[j]==')'||s[i]=='['&&s[j]==']') dp[i][j]=max(dp[i][j],dp[i+1][j-1]+2);转移过程#include<stdio.h>#include<string.h>#define max(a,b) a>b?a:bint dp[110][101];char s[110];int main(){ char Read More
posted @ 2011-10-09 20:28 Because Of You Views(256) Comments(0) Diggs(0)
View Code 把向量旋转到一个圆内,三点确定一个圆#include<stdio.h>#include<math.h>#include<stdlib.h>const double pi=acos(-1.0);const double eps = 1e-8;struct Line { double a, b, c;};struct Point { double x, y; Point operator - (const Point& t) const { Point tmp; tmp.x = x - t.x; tmp.y = y -... Read More
posted @ 2011-10-09 18:18 Because Of You Views(342) Comments(0) Diggs(0)
顶点连通度:即最少去掉几个点使得图不连通设想两个不相邻的点u,v;从u到v的两条没有公共内部顶点的路径,互称为独立轨,;u到v独立轨最大的条数,记作P(u,v)所以要想图不联通,应该在每条独立轨上都去掉一个点(不能随便去),所以顶点连通度就是最大独立轨数目的最小值注意,如果图是完全图,应该去掉所有的点怎么求两点间(A,B)的最大独立轨P(A,B)呢?1、把每个点都拆成两个点,之间连一条容量为1的边u'---u",原图中的每条边e=(u,v)在新网络中有两条弧e'=<u",v'>和e"=<v",u'> Read More
posted @ 2011-10-09 12:44 Because Of You Views(661) Comments(1) Diggs(0)
每次选取堆里面最短的两根木头相加,再将所得和重新加入堆中,直到堆的size小于2View Code #include<queue>#include<stdio.h>#include<string.h>#include<vector>using namespace std;struct mycmp{ bool operator()(const int &a,const int &b) { return a>b; }};int main(){ priority_queue<__int64,vector<__int64 Read More
posted @ 2011-10-08 17:33 Because Of You Views(292) Comments(0) Diggs(0)
一开始就瞄准了这一题,题目没看懂,想看其他题目,没想到瞬间就有十几个人A了,果断继续看,发现只要距离远的先输送细菌就好了View Code #include<stdio.h>#include<string.h>#include<algorithm>using namespace std;struct cell{ int d,t;}c[100010];int end[100010];int sum;int cmp(cell a,cell b){ if(a.t==b.t) return a.d>b.d; return a.t>b.t;}int mai Read More
posted @ 2011-10-07 20:30 Because Of You Views(303) Comments(0) Diggs(0)
题目数据较小,直接枚举自己和敌人的所有全排列,暴力水之(讨论出做法后,队友写的)View Code #include<stdio.h>#include<string.h>#include<algorithm>using namespace std;int n;int id1[10],id2[10];struct node{ char s[25];}p[10];int map[10][10];int cmp(node a,node b){ return strcmp(a.s,b.s)<0;}void init(){ for(int i=0;i<n; Read More
posted @ 2011-10-07 20:23 Because Of You Views(252) Comments(0) Diggs(0)
View Code #include<stdio.h>#include<string.h>int n,m;int p[1101000];int id[1101000];int vis[1100010];void init(){int i;memset(vis,0,sizeof(vis));for(i=0;i<=n;i++){p[i]=i;id[i]=i;}}int find(int x){return x==p[x]?x:p[x]=find(p[x]);}void unio(int x,int y){ int tx=find(x);int ty=find(y);i Read More
posted @ 2011-10-07 20:15 Because Of You Views(441) Comments(0) Diggs(0)
http://blog.csdn.net/fp_hzq/article/category/890938 Read More
posted @ 2011-10-07 19:53 Because Of You Views(179) Comments(0) Diggs(0)
用位运算来实现广搜,每一条边就是一个方向View Code #include<stdio.h>#include<queue>#include<string.h>using namespace std;int steps;queue<int> Q;int vis[1<<17];int dir[32][2]={0,1,0,2,0,8,0,4, 1,3,1,9,1,5, 3,7,3,2,3,11, 11,9,11,15,11,10, 10,2,10,8,10,14, 8,12,8,9, 9,13, 2,6, 4,5,4,6,4,12, 5, Read More
posted @ 2011-10-07 18:40 Because Of You Views(260) Comments(0) Diggs(0)
上一页 1 ··· 32 33 34 35 36 37 38 39 40 ··· 42 下一页