05:Cave Cows 1 洞穴里的牛之一
- 总时间限制:
- 10000ms
- 单个测试点时间限制:
- 1000ms
- 内存限制:
- 262144kB
- 描述
-
很少人知道其实奶牛非常喜欢到洞穴里面去探险。洞窟里有N(1≤N≤100)个洞室,由M(1≤M≤1000)条双向通道连接着它们.每对洞室间至多只有一条双向通道.有K(1≤K≤14)个洞室,里面放有1捆干草.牛吃1捆干草,体重指数就会增加1.贪吃的贝茜要到洞窟里面探险.她希望能吃尽量多的干草,但每条通道有一个宽度阈值,如果体重指数超过相应的阈值,贝茜就会被卡祝她从洞窟1出发,体重指数为0.在洞里溜达一圈后,她要返回洞窟1. 那她最多能吃多少捆干草呢?注意,贝茜经过一个洞室,不一定非要吃掉里面的干草.
- 输入
- 第1行输入N,M,K,之后K行每行一个整数,表示在这个洞室放有一捆干草;接下来M行每行三个整数,表示一条双向通道的起点终点和宽度阈值.
- 输出
- 最多能吃掉的干草数.
- 样例输入
-
- 6 7 5
- 1
- 2
- 3
- 4
- 5
- 1 2 3
- 3 6 2
- 6 2 10
- 2 4 1
- 5 1 1
- 4 5 1
- 1 6 1
- 6 7 5
- 样例输出
-
- 4
- 来源
- USACO 2004 Open Orange
- 思路:贪心,把每个稻草的阈值都排一个序,能吃的就吃
- 注意几个细节:
- 1、要特判一号洞穴有艹的情况
- 2.、最后要写>
-
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- #include<queue>
- using namespace std;
- const int MAXN=;
- const int maxn=0x3f;
- void read(int &n)
- {
- char c='+';int x=;bool flag=;
- while(c<''||c>''){c=getchar();if(c=='-')flag=;}
- while(c>=''&&c<='')
- x=(x<<)+(x<<)+c-,c=getchar();
- flag==?n=-x:n=x;
- }
- int n,m,k;
- struct node
- {
- int have;
- int need;
- int pos;
- }a[MAXN];
- int map[MAXN][MAXN];
- int dis[MAXN][MAXN];
- int comp(const node &a,const node &b)
- {
- if(a.have==b.have)
- return a.need<b.need;
- else
- return a.have>b.have;
- }
- int main()
- {
- read(n);read(m);read(k);
- int num=k;
- for(int i=;i<=k;i++)
- {
- int p;
- read(p);
- a[p].have=;
- a[i].pos=i;
- }
- memset(map,maxn,sizeof(map));
- for(int i=;i<=m;i++)
- {
- int x,y,z;
- read(x);read(y);read(z);
- map[x][y]=z;
- map[y][x]=z;
- }
- for(int i=;i<=n;i++)
- map[i][i]=;
- for(int k=;k<=n;k++)
- for(int i=;i<=n;i++)
- for(int j=;j<=n;j++)
- if(map[i][j]<maxn)
- map[i][j]=max(map[i][j],min(map[i][k],map[k][j]));
- else
- map[i][j]=min(map[i][k],map[k][j]);
- for(int i=;i<=n;i++)
- if(a[i].have)
- a[i].need=map[][i];
- sort(a+,a+n+,comp);
- int now=;
- int flag=;
- for(int i=;i<=num;i++)
- {
- // if(a[i].have==0)break;
- if(a[i].have&&a[i].pos==)
- {
- flag=;
- continue;
- }
- if(a[i].need>now)
- now++;
- }
- if(flag==)
- now++;
- printf("%d",now);
- return ;
- }
- #include<iostream>
05:Cave Cows 1 洞穴里的牛之一的更多相关文章
- 3381: [Usaco2004 Open]Cave Cows 2 洞穴里的牛之二
3381: [Usaco2004 Open]Cave Cows 2 洞穴里的牛之二 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 21 Solved ...
- Bzoj 3380: [Usaco2004 Open]Cave Cows 1 洞穴里的牛之一
3380: [Usaco2004 Open]Cave Cows 1 洞穴里的牛之一 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 64 Solved ...
- bzoj3383[Usaco2004 Open]Cave Cows 4 洞穴里的牛之四*
bzoj3383[Usaco2004 Open]Cave Cows 4 洞穴里的牛之四 题意: 平面直角坐标系有n个点,从(0,0)出发,从一个点上可以跳到所有与它横纵坐标距离都≤2的点上,求最少步数 ...
- bzoj3381[Usaco2004 Open]Cave Cows 2 洞穴里的牛之二*
bzoj3381[Usaco2004 Open]Cave Cows 2 洞穴里的牛之二 题意: RMQ问题.序列长度≤25000,问题数≤25000. 题解: 倍增. 代码: #include < ...
- [BZOJ3380] [USACO2004 Open]Cave Cows 1 洞穴里的牛之一
Description 很少人知道其实奶牛非常喜欢到洞穴里面去探险. 洞窟里有N(1≤N≤100)个洞室,由M(1≤M≤1000)条双向通道连接着它们.每对洞室间 至多只有一条双向通道.有K( ...
- P3380: [Usaco2004 Open]Cave Cows 1 洞穴里的牛之一
还是蛮简单的一道题,首先dfs一遍,在所有能到达放有干草的洞穴的所有路径中,找出路径上最小伐值的最大值,按这个值由小到大,再来一遍贪心就行了,能放就放,不能放拉倒(也可以理解为,不能放把最前一个删了) ...
- bzoj3380: [Usaco2004 Open]Cave Cows 1 洞穴里的牛之一(spfa+状压DP)
数据最多14个有宝藏的地方,所以可以想到用状压dp 可以先预处理出每个i到j的路径中最小权值的最大值dis[i][j] 本来想用Floyd写,无奈太弱调不出来..后来改用spfa 然后进行dp,这基本 ...
- P3383: [Usaco2004 Open]Cave Cows 4 洞穴里的牛之四
这个系列总算是做完了,这是我第一次高效率做完四道题,虽然中间有两道水题,但是第一和第四题还是蛮好的,但是只要能想到思路就很快能打完的. 像这道题,刚开始在想能不能用DP?但是苦于不知道怎么实施,后来又 ...
- P3382: [Usaco2004 Open]Cave Cows 3 洞穴里的牛之三
首先,我们先确定,最长的曼哈顿距离只可能为 x1+y2-(x2+y2) 和 x1-y1-(x2-y2) 所以我们只需要维护四个值, 分别代表 max(x+y) ; max(x-y) ; min(x+y ...
随机推荐
- ROS-URDF文件标签解读
前言:URDF文件标签解读.margin: auto; width: 700px; height: 100px; ; width: 700px; text-align: center; 一.连杆(li ...
- 编写高质量的Makefile
源地址 :http://blog.csdn.net/maopig/article/details/6801749 一.前言 回想自己的第一个Makefile,是这个样子的 CODE hello:hel ...
- c#设计模式(1)
本文摘取自吕震宇的博客园文章,版权归吕震宇仅供个人学习参考.转载请标明原作者吕震宇. 这学期开设设计模式课程,将课件放上来. 课本:<C#设计模式>,电子工业出版社,ISBN 7-5053 ...
- WPF向系统发送消息 并传递结构体
场景 :需要开发一个通讯组件 流程为:界面-开启接收服务-通过发送组件发送信息到 其他客户端和服务端 接受服务接收其他客户端发送的消息 需要传递给对应组件或者界面 因此会出现类库重复引用问题.因为采用 ...
- C#6.0新增功能
C# 6.0 版本包含许多可提高开发人员工作效率的功能. 此版本中的功能包括: 只读自动属性: 可以创建只能在构造函数中设置的只读自动属性. 自动属性初始值设定项: 可以编写初始化表达式来设置自动属性 ...
- Android 自定义ScrollView的滑动监听事件
项目结构: 1.LazyScrollView类(自定义ScrollView) package android.zhh.com.myapplicationscrollview; /** * Create ...
- [转]opencv学习资料
转自:http://blog.csdn.net/poem_qianmo/article/details/20537737 1:Mat imread(const string& filename ...
- UVa 11549 Open Credit System
题意:给出n个数,找出两个整数a[i],a[j](i < j),使得a[i] - a[j]尽量大 从小到大枚举j,在这个过程中维护a[i]的最大值 maxai晚于ans更新, 可以看这个例子 1 ...
- PHP学习过程中遇到的疑难杂症
变量当双引号中包含变量时,变量会与双引号中的内容连接在一起:当单引号中包含变量时,变量会被当做字符串输出. Heredoc结构形式首先使用定界符表示字符串(<<<),接着在“< ...
- Type system
Type system[edit] Main articles: Data type, Type system, and Type safety A type system defines how a ...