上一页 1 ··· 42 43 44 45 46 47 48 49 50 ··· 61 下一页
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1317思路:只要在SPFA中将一个条件,就不会进入负环。那么如果有正环呢,显然退出条件是某个点入队列次数>=n,此时退出时只需判断当前点是否与n存在路径,这步可以用Floyd来实现。。。View Code 1 #include<iostream> 2 #include<queue> 3 const int MAXN=110; 4 using namespace std; 5 int n; 6 int weight[MAXN]; 7 int power[MAXN]; 8 阅读全文
posted @ 2013-04-13 17:43 ihge2k 阅读(946) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1245思路:建图,0点为湖心,n+1点为湖外,然后bfs就可以了。。。具体见代码。View Code 1 #include<iostream> 2 #include<cmath> 3 #include<queue> 4 #define p 1e-7 5 const int inf=1<<30; 6 const int MAXN=110; 7 using namespace std; 8 double dist[MAXN][MAXN]; 9 double 阅读全文
posted @ 2013-04-13 16:20 ihge2k 阅读(227) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1286数学题真的是有点吃不消了。。。View Code 1 #include<iostream> 2 #include<cmath> 3 using namespace std; 4 //可以快速求出欧拉函数的值 ( P为N的质因子 ) 5 //若(N%P==0 && (N/P)%P==0) 则有:E(N)=E(N/P)*P; 6 //若(N%P==0 && (N/P)%P!=0) 则有:E(N)=E(N/P)*(P-1); 7 8 //欧拉公 阅读全文
posted @ 2013-04-12 22:04 ihge2k 阅读(189) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1250思路:一开始用的是vet来保存的,速度太慢。。然后用二维数组来保存,每8位保存在数组中,处理一下进位就可以了。。。View Code 1 #include 2 using namespace std; 3 int num[10010][300];//num[i][j]存8位 4 5 6 void Initiate(){ 7 num[1][1]=1; 8 num[2][1]=1; 9 num[3][1]=1;10 num[4][1]=1;11 for... 阅读全文
posted @ 2013-04-11 20:17 ihge2k 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3639思路:先按一般的思路来,把杂乱的有向图通过缩点变成有向无环图,然后建反向图,并标记每个点的入度(最大值一定在反向图的入度为的点中)然后dfs一下下就可以了,最后就是在原图中找等于MAX的点就可以了。View Code 1 #include 2 #include 3 #include 4 const int MAXN=5000+10; 5 using namespace std; 6 vectormp1[MAXN];//原图 7 vectormp2[MAXN];//反向图 8 ... 阅读全文
posted @ 2013-04-10 20:46 ihge2k 阅读(701) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2208思路:应用了并查集的思想,具体见注释;View Code 1 #include<iostream> 2 const int MAXN=14; 3 using namespace std; 4 bool map[MAXN][MAXN]; 5 int root[MAXN]; 6 int N,M; 7 8 //n为当前的点,m为目前的气球数目 9 bool dfs(int n,int m){10 if(m>M)return false;11 if(n==N)return true. 阅读全文
posted @ 2013-04-10 18:18 ihge2k 阅读(245) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1269View Code 1 #include 2 #include 3 #include 4 const int MAXN=10000+10; 5 using namespace std; 6 vectormp[MAXN]; 7 stackS; 8 int n,m; 9 int _count;10 int cnt;11 bool mark[MAXN];12 int dfn[MAXN];13 int low[MAXN];14 15 //求强连通分量tarjan16 void Tarjan(int . 阅读全文
posted @ 2013-04-09 22:46 ihge2k 阅读(496) 评论(0) 推荐(0) 编辑
摘要: 贴几道记忆化搜索的题。。。题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1078View Code 1 #include 2 const int MAXN=110; 3 using namespace std; 4 int dp[MAXN][MAXN]; 5 int map[MAXN][MAXN]; 6 int n,m; 7 int dir[4][2]={{-1,0},{1,0},{0,-1},{0,1}}; 8 9 int dfs(int x,int y){10 if(dp[x][y])return dp[x][y];11 ... 阅读全文
posted @ 2013-04-09 14:14 ihge2k 阅读(249) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4540View Code 1 #include<iostream> 2 const int inf=1<<30; 3 using namespace std; 4 int map[22][22]; 5 int dp[22][22];//表示前i个时刻在第j个位置时的最小消耗能量 6 int n,m; 7 8 int main(){ 9 while(~scanf("%d%d",&n,&m)){10 for(int i=1;i<=n;i+ 阅读全文
posted @ 2013-04-08 20:00 ihge2k 阅读(358) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2452http://acm.hdu.edu.cn/showproblem.php?pid=1501记忆化搜索。。。说的简单点,就是dfs+状态标记。。。View Code 1 #include 2 #include 3 const int MAXN=10000+10; 4 const int inf=1mp[MAXN]; 8 int value[MAXN]; 9 int In[MAXN],Out[MAXN];10 int dp[MAXN][2];11 12 int dfs(int now,int . 阅读全文
posted @ 2013-04-08 08:18 ihge2k 阅读(226) 评论(0) 推荐(0) 编辑
上一页 1 ··· 42 43 44 45 46 47 48 49 50 ··· 61 下一页