搜索的一波小水题

P2853 [USACO06DEC]牛的野餐Cow Picnic

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int n,m,k,p[10000],can[10000];
 4 int w[1000+15][1000+15];
 5 bool vis[10000];
 6
 7 void dfs(int pre)
 8 {
 9     for(int j=1;j<=n;j++)
10     {
11         if(w[pre][j]&&!vis[j])
12         {
13             vis[j]=1; can[j]++;
14             dfs(j);
15         }
16     }
17 }
18
19 int main()
20 {
21     scanf("%d%d%d",&k,&n,&m);
22     for(int i=1;i<=k;i++) scanf("%d",&p[i]);
23     for(int i=1;i<=m;i++)
24     {
25         int x,y;
26         scanf("%d%d",&x,&y);
27         w[x][y]=1;
28     }
29     for(int i=1;i<=n;i++) w[i][i]=1;
30     for(int i=1;i<=k;i++)
31     {
32         memset(vis,0,sizeof(vis));
33         dfs(p[i]);
34     }
35
36     int ans=0;
37     for(int i=1;i<=n;i++) if(can[i]==k) ans++;
38     printf("%d\n",ans);
39     return 0;
40 }

dfs

P1451 求细胞数量

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define maxn 100000
 4 int n,m,ma[300][300],ans;
 5 bool vis[300][300];
 6 int dx[4]={0,0,1,-1};
 7 int dy[4]={1,-1,0,0};
 8 char s[300][300];
 9
10 void dfs(int x,int y)
11 {
12     if(x<0||y<0||x>=n||y>=m||vis[x][y]) return ;
13     vis[x][y]=true;
14     for(int i=0;i<4;i++)
15       if(s[x+dx[i]][y+dy[i]]!=‘0‘)
16         dfs(x+dx[i],y+dy[i]);
17 }
18
19 int main()
20 {
21     scanf("%d%d",&n,&m);
22     for(int i=0;i<n;i++) cin>>s[i];
23     for(int i=0;i<n;i++)
24         for(int j=0;j<m;j++)
25             if(!vis[i][j]&&s[i][j]!=‘0‘) ans++,dfs(i,j);
26     printf("%d\n",ans);
27     return 0;
28 }

dfs

P1433 吃奶酪

 1 #include<algorithm>
 2 #include<iostream>
 3 #include<cstring>
 4 #include<cstdio>
 5 #include<cmath>
 6 #include<queue>
 7 using namespace std;
 8 #define inf 1000000
 9 int n,num;
10 double ans=inf*1.0,x[10000],y[10000],dis[100][100];
11 bool vis[100000];
12
13 void dfs(double now,int num,int prex)
14 {
15     if(now>ans)    return ;
16     if(num==n)
17     {
18         ans=min(ans,now);
19         return ;
20     }
21     for(int i=1;i<=n;i++)
22     {
23         if(!vis[i])
24         {
25             vis[i]=1;
26             dfs(dis[prex][i]+now,num+1,i);
27             vis[i]=0;
28         }
29     }
30
31 }
32
33 int main()
34 {
35     scanf("%d",&n);
36     for(int i=1;i<=n;i++)
37         scanf("%lf%lf",&x[i],&y[i]);
38     for(int i=0;i<=n;i++)
39         for(int j=0;j<=n;j++)
40             if(i!=j) dis[i][j]=sqrt(pow(x[j]-x[i],2)+pow(y[j]-y[i],2));
41     dfs(0,0,0);
42     printf("%.2lf\n",ans);
43     return 0;
44 }

dfs

时间: 2024-11-05 07:53:24

搜索的一波小水题的相关文章

[HDU5214]Movie解题报告|小水题大智慧

Movie Cloud and Miceren like watching movies. Today, they want to choose some wonderful scenes from a movie. A movie has N scenes can be chosen, and each scene is associate with an interval [L, R]. L is the beginning time of the scene and R is the en

第十一届“蓝狐网络杯”湖南省大学生计算机程序设计竞赛 B - 大还是小? 字符串水题

B - 大还是小? Time Limit:5000MS     Memory Limit:65535KB     64bit IO Format: Description 输入两个实数,判断第一个数大,第二个数大还是一样大.每个数的格式为: [整数部分].[小数部分] 简单起见,整数部分和小数部分都保证非空,且整数部分不会有前导 0.不过,小数部分的最 后可以有 0,因此 0.0 和 0.000 是一样大的. Input 输入包含不超过 20 组数据.每组数据包含一行,有两个实数(格式如前所述)

hdu4505 小Q系列故事——电梯里的爱情(水题)

Problem Description http://acm.hdu.edu.cn/showproblem.php?pid=4505 细心的同事发现,小Q最近喜欢乘电梯上上下下,究其原因,也许只有小Q自己知道:在电梯里经常可以遇到他心中的女神HR. 电梯其实是个很暧昧的地方,只有在电梯里,小Q才有勇气如此近距离接近女神,虽然觉得有点不自在,但次数多了,女神也习惯了小Q的存在,甚至熟悉到仿佛不说上句话自己也都觉得不合适了.可是,他们的谈话也仅仅限于今天天气不错啊或是你吃了吗之类的,往往在对方微笑点

华为题 搜索水题 DFS

1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <cmath> 5 #include <string> 6 #include <iterator> 7 #include <algorithm> 8 #include <cstdlib> 9 #include <deque> 10 #include &l

POJ百道水题列表

以下是poj百道水题,新手可以考虑从这里刷起 搜索1002 Fire Net1004 Anagrams by Stack1005 Jugs1008 Gnome Tetravex1091 Knight Moves1101 Gamblers1204 Additive equations 1221 Risk1230 Legendary Pokemon1249 Pushing Boxes 1364 Machine Schedule1368 BOAT1406 Jungle Roads1411 Annive

4.7-4.9补题+水题+高维前缀和

题目链接:51nod 1718 Cos的多项式  [数学] 题解: 2cosx=2cosx 2cos2x=(2cosx)^2-2 2cos3x=(2cosx)^3-3*(2cosx) 数归证明2cos(nx)能表示成关于2cosx的多项式,设为f(n) f(1)=x,f(2)=x^2-2(其中的x就是2cosx) 假设n=1~k时均成立(k>=3) 当n=k+1时 由cos((k+1)x)=cos(kx)cos(x)-sin(kx)sin(x) cos((k-1)x)=cos(kx)cos(x)

HDU 4006 The kth great number (基本算法-水题)

The kth great number Problem Description Xiao Ming and Xiao Bao are playing a simple Numbers game. In a round Xiao Ming can choose to write down a number, or ask Xiao Bao what the kth great number is. Because the number written by Xiao Ming is too mu

水题是糖 甜到忧伤

比赛的题目真是怒赞. 多天之后自己来敲了个水题A,果真甜到忧伤哇 "AAAAAAAAAAA"的字典序是比"AC"小的! #include <iostream> #include <cstring> #include <map> #include <cstdio> #include <cmath> using namespace std; char s[105]; int main() { int T; sc

1503171912-ny-一道水题

一道水题 时间限制:1000 ms  |  内存限制:65535 KB 难度:2 描写叙述 今天LZQ在玩一种小游戏,可是这游戏数有一点点的大,他一个人玩的累.想多拉一些人进来帮帮他.你能写一个程序帮帮他吗?这个游戏是这种:有一行数字,假设我们把这行数字中的'5'都看成空格,那么就得到一行用空格切割的若干非负整数(可能有些整数以'0'开头,这些头部的'0'应该被忽略掉,除非这个整数就是由若干个'0'组成的,这时这个整数就是0). 你的任务是:对这些切割得到的整数,依从小到大的顺序排序输出,大家赶