woj1005-holding animals-01pack woj1006-Language of animals-BFS
title: woj1005-holding animals-01pack
date: 2020-03-05
categories: acm
tags: [acm,woj,pack]
01背包。中等题。
description
The total available floor space on the ark would have been over 100,000 square feet, which would be more floor space than in 20 standard sized
basketball courts. But in our story, we assume that the land dwelling air breathing animals is so many that the Ark can't contain all of them.
We know that the size of each kind of animal is different and the God has his own favorite. The God assigns each kind of animal a point to
show his favorite, and then lists points of every kind of animal to Noah. Noah must let some kinds of animals into the Ark and refuse
the others to maximize the total points. Noah cries for he doesn't know computer programming.
It 's an easy problem for you,right? So,rescue Noah!
输入格式
There will be multiple test cases. For each test case,the first line contains an integer n(n<=100) representing the number of species of the land
dwelling air breathing animals all over the world.
In the next n lines,there will be two integers in each line,separated by a single space,where the first integer shows the size of a kind of animal
and the second integer shows the point. The size and the point for all the animals will not exceed 10000.
The last line contains an integer s(s <= 100,000) indicating the size of Noah's Ark.
输出格式
For each test case,you should output a line that contains a single integer to describe the maximal point Noah can get.
样例输入
2
10 20
20 30
30
3
10 20
30 30
20 20
30
样例输出
50
40
code
#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
const int maxn=10005;
int value[maxn];
int sizee[maxn];
int final[100005];
// memset(final,0,sizeof(int)*4); 注意memset是字节为单位,只能赋值0。比如int 4字节0000 0X01010101.
//速度慢 另外注意一个字节2个16进制数
// memset(a,0x3f,sizeof(a))
int main(){
int n=0,noah=0;
while(cin>>n){
for(int i=0;i<n;i++){
cin>>sizee[i]>>value[i];
}
cin>>noah;
for(int i=0;i<=noah;i++) final[i]=0;
for(int i=0;i<n;i++)
for(int j=noah;j>0;j--) //倒序理解就是01背包只有一件,前i-1件已经判断完了,只判断这一件,在比较小的情况下放不影响在比较大的情况放
if(j>=sizee[i]) //final可行因为如果小的能放大的也能放。
final[j]=max(final[j],final[j-sizee[i]]+value[i]);
cout<<final[noah]<<endl;
}
return 0;
}
title: woj1006-Language of animals-BFS
date: 2020-03-05
categories: acm
tags: [acm,woj,bfs]
中等题。
注意数据很大,边没有权,就BFS,邻接表。
description
According to Ernest Mayr, America's leading taxonomist, there are over 1 million species of animals in the world.When all
kinds of animals took boat,they found a problem.Each kind of animal had its own language,so the communication became
very hard.Assume that animal A could communicate with animal B but it couldn't communicate with animal C,while animal C
could only communicate with animal B. So,animal B must translate what one said to the other if animal A and animal C wanted
to communicate with each other.We called animal B translator.Noah wanted to know the least translators if two animals
wanted to communicate with each other.
输入格式
There will be only one test case.The first line contains two integers n(2 <= n <=200,000) and
m(1 <= m <= 300,000),where n represents the number of animals and m represents the number of pairs which could
communicate with each other. The next m lines contains two numbers each,representing two animals who can communicate
with each other. The number starts at 0.The next line contains a integer k(k<=20) representing the number of queries,and
the last k lines contains two number each,representing two animals who wanted to communicate with each other.
输出格式
For each query,you should output the least translators if two animals in that query wanted to communicate with each other.
If they couldn't communicate with each other by translating ,output "-1".
样例输入
3 2
0 1
1 2
2
0 0
0 2
样例输出
0
1
code
//数据范围很大,不能用邻接矩阵
//没有边权,BFS就行,不用最短路
// 建图用链表或者vector
// BFS用QUEUE DFS用栈
#include <iostream>
#include<cstdio>
#include<vector>
#include<queue>
using namespace std;
const int maxn= 200005; //我傻了 写成20000+5,然后SEGMENTFAULT
vector<int> mapp[maxn];
bool visited[maxn];
struct Node {
int a, len; //s 到 a的距离 len
Node(int a, int len) : a(a), len(len) {}
};
queue<Node> que;
void clearque(queue<Node>& q){
queue<Node> empty;
swap(empty, q);
}
int bfs(int s, int e)
{
for(int i=0;i<maxn;i++)
visited[i]=false;
visited[s] = true;
clearque(que);
que.push(Node(s, 0));
while(!que.empty()) {
Node tmp = que.front();
que.pop();
if(tmp.a == e)
return tmp.len==0?0:tmp.len-1;
// if(!mapp[tmp.a].empty())
for(vector<int>::iterator iter = mapp[tmp.a].begin(); iter != mapp[tmp.a].end(); iter++) {
if(!visited[*iter]) {
visited[*iter] = true;
que.push(Node(*iter, tmp.len + 1));
}
}
}
return -1;
}
int main()
{
int n=0,m=0,q=0,x=0,y=0;
while(scanf("%d%d", &n, &m)==2) {
for(int i=0;i<n;i++)
mapp[i].clear();
for(int i=0;i<m;i++){
scanf("%d%d", &x, &y); mapp[x].push_back(y); mapp[y].push_back(x);
}
scanf("%d", &q);
for(int i=0;i<q;i++){
scanf("%d%d", &x, &y);
cout<<bfs(x,y)<<endl;
}
}
return 0;
}
woj1005-holding animals-01pack woj1006-Language of animals-BFS的更多相关文章
- 【256】◀▶IEW-答案
附答案 Unit I Fast food Model Answers: Model 1 The pie chart shows the fast foods that teenagers prefer ...
- 【255】◀▶IEW-Unit20
Unit 20 Environment: Tourism I.定语从句及分词在雅思写作中的运用 定语从句: 1. 先行词 2. 关系词:关系代词.关系副词 3. 非限制性定语从句 4. 分词和定语从句 ...
- Unity 最佳实践
转帖:http://www.glenstevens.ca/unity3d-best-practices/ 另外可以参考:http://devmag.org.za/2012/07/12/50-tips- ...
- FreeMarker中文API手册(完整)
FreeMarker概述 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用 ...
- PHP 7 测试用例(转)
性能改善:PHP 7高达两倍快的PHP 5.6 显著减少内存使用 抽象语法树 一致的64位支持 改进的异常层次结构 许多转化为异常致命错误 安全随机数发生器 删除旧的和不支持的SAPIs和扩展 空合并 ...
- .NET软件工程师面试总结
1.手写画出系统架构图,系统代码架构,有什么技术难点? 2.手写画出系统部署图 CDN(一般购买别人的服务器会自动CDN,他们自己配置就OK啦) 3.asp.net 的session怎么实现会话共享 ...
- 好RESTful API的设计原则
说在前面,这篇文章是无意中发现的,因为感觉写的很好,所以翻译了一下.由于英文水平有限,难免有出错的地方,请看官理解一下.翻译和校正文章花了我大约2周的业余时间,如有人愿意转载请注明出处,谢谢^_^ P ...
- 【ruby】ruby基础知识
Install Ruby(安装) For windows you can download Ruby from http://rubyforge.org/frs/?group_id=167 for L ...
- Principles of good RESTful API Design 好的 RESTful API 设计
UPDATE: This post has been expanded upon and converted into an eBook. Good API design is hard! An AP ...
- FreeMarker中文API手冊(完整)
FreeMarker概述 FreeMarker是一个模板引擎,一个基于模板生成文本输出的通用工具,使用纯Java编写 FreeMarker被设计用来生成HTML Web页面,特别是基于MVC模式的应用 ...
随机推荐
- 阿里 Mock 工具正式开源,干掉市面上所有 Mock 工具!
最近栈长注意到阿里开源了自家的 Mock 工具:TestableMock,该工具号称最轻量.简单.舒适的 Mock 测试工具,功能十分强大,媲美 PowerMock,用法比 Mockito 还要简洁, ...
- 把Win10变成Mac OS:比任何美化主题都好用的工具
摘要:把Win10变成Mac OS:比任何美化主题都好用的工具 - 这是一款真正意义上的把Windows变成MacOS的软件,不用更换主题,不用修改Dll,直接是程序接管了Explorer,比任何美化 ...
- Scheduling Multithreaded Computations by Work Stealing
steal.pdf http://supertech.csail.mit.edu/papers/steal.pdf This paper studies the problem of eciently ...
- 用git合并分支时,如何保持某些文件不被合并
用git合并分支时,如何保持某些文件不被合并_fkaking的专栏-CSDN博客_git 合并分支 https://blog.csdn.net/fkaking/article/details/4495 ...
- 在这个应用中,我使用了 MQ 来处理异步流程、Redis 缓存热点数据、MySQL 持久化数据,还有就是在系统中调用另外一个业务系统的接口,对我的应用来说这些都是属于 RPC 调用,而 MQ、MySQL 持久化的数据也会存在于一个分布式文件系统中,他们之间的调用也是需要用 RPC 来完成数据交互的。
在这个应用中,我使用了 MQ 来处理异步流程.Redis 缓存热点数据.MySQL 持久化数据,还有就是在系统中调用另外一个业务系统的接口,对我的应用来说这些都是属于 RPC 调用,而 MQ.MySQ ...
- all header field names in both HTTP requests and HTTP responses are case-insensitive.
https://tools.ietf.org/html/rfc6455#section-4.2.1 Please note that according to [RFC2616], all heade ...
- aio 系列函数是由 POSIX 定义的异步操作接口,可惜的是,Linux 下的 aio 操作,不是真正的操作系统级别支持的,它只是由 GNU libc 库函数在用户空间借由 pthread 方式实现的,而且仅仅针对磁盘类 I/O,套接字 I/O 不支持。
30 | 真正的大杀器:异步I/O探索 https://time.geekbang.org/column/article/150780
- slice 切片实现 Slice object interface
1.Python切片对象可以为任意类型 https://github.com/python/cpython/blob/master/Include/sliceobject.h /* Slice obj ...
- scala/java等其他语言从CSV文件中读取数据,使用逗号','分割可能会出现的问题
众所周知,csv文件默认以逗号","分割数据,那么在scala命令行里查询的数据: 可以看见,字段里就包含了逗号",",那接下来切割的时候,这本应该作为一个整体 ...
- LOJ2130软件包
题目描述Linux用户和OSX用户一定对软件包管理器不会陌生.通过软件包管理器,你可以通过一行命令安装某一个软件包,然后软件包管理器会帮助你从软件源下载软件包,同时自动解决所有的依赖(即下载安装这个软 ...