USACO Party Invitations
洛谷 P3068 [USACO13JAN]派对邀请函Party Invitations
JDOJ 2343: USACO 2013 Jan Silver 3.Party Invitations
Description
Problem 3: Party Invitations [Travis Hance, 2012]
Farmer John is throwing a party and wants to invite some of his cows to
show them how much he cares about his herd. However, he also wants to
invite the smallest possible number of cows, remembering all too well the
disaster that resulted the last time he invited too many cows to a party.
Among FJ's cows, there are certain groups of friends that are hard to
separate. For any such group (say, of size k), if FJ invites at least k-1
of the cows in the group to the party, then he must invite the final cow as
well, thereby including the entire group. Groups can be of any size and
may even overlap with each-other, although no two groups contain exactly
the same set of members. The sum of all group sizes is at most 250,000.
Given the groups among FJ's cows, please determine the minimum number of
cows FJ can invite to his party, if he decides that he must definitely
start by inviting cow #1 (his cows are conveniently numbered 1..N, with N
at most 1,000,000).
Input
* Line 1: Two space-separated integers: N (the number of cows), and G
(the number of groups).
* Lines 2..1+G: Each line describes a group of cows. It starts with
an integer giving the size S of the group, followed by the S
cows in the group (each an integer in the range 1..N).
Output
* Line 1: The minimum number of cows FJ can invite to his party.
Sample Input
10 4 2 1 3 2 3 4 6 1 2 3 4 6 7 4 4 3 2 1
Sample Output
4
HINT
INPUT DETAILS:
There are 10 cows and 4 groups. The first group contains cows 1 and 3, and
so on.
OUTPUT DETAILS:
In addition to cow #1, FJ must invite cow #3 (due to the first group
constraint), cow #4 (due to the second group constraint), and also cow #2
(due to the final group constraint).
题目翻译:
FJ正在举行派对,并想邀请他的一些奶牛参加以显示FJ多么关心他们,同时,他也希望邀请奶牛的数量最少,有了上一次派对的后果,他不要邀请过多的奶牛参加派对。
在FJ的奶牛中,有一些奶牛不能分开。 对于任何这样的奶牛群,(如果某个群的奶牛数量为k),当FJ邀请组中的至少k-1个奶牛参加派对时,他必须邀请最后的一头奶牛,从而包括整个组。 组可以是任何大小,并且甚至可以彼此重叠,但是没有两个组包含完全相同的奶牛。所有组的大小之和<=250,000。
考虑到FJ的牛群中的朋友关系群体的情况下,请你确定FJ可以邀请参加他的派对的奶牛的最小数量,开始前他必须先邀请编号为1的奶牛(为了方便,FJ的的奶牛方编号为1..N,N<=1,000,000)
输入:第一行:两个空格分隔的整数:N和G。分别表示奶牛的数量和朋友组的的数量 接下来2到G+1行:每一行描述一群牛。它始于一个整数,表示这个组的大小,接下来每一个数表示一只奶牛的编号(编号在1到n之间,表示这只奶牛在这个朋友组里)
输出:共一行,一个数:表示FJ最少可以邀请的牛的数量
样例一共10头牛和4组。 第一组包含奶牛1和3,接下来的组也类似
除了奶牛#1,FJ还必须邀请牛#3(由于第一组约束),牛#4(由于第二组约束)和牛#2(由于最终组约束)。
题解:
Code:
#include<cstdio>
#include<set>
#include<queue>
#define ll long long
using namespace std;
const ll N=1e6+5;
struct cs
{
int to,nxt;
}e[N];
int head[N],tot;
bool v[N];
set<int> s[N];
queue<int> q;
int n,m,x,y,ans;
void add(int x,int y)
{
e[++tot].to=y;
e[tot].nxt=head[x];
head[x]=tot;
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
{
scanf("%d",&x);
for(int j=1;j<=x;j++)
{
scanf("%d",&y);
add(y,i);
s[i].insert(y);
}
}
q.push(1);
while(!q.empty())
{
int x=q.front();
q.pop();
for(int k=head[x];k;k=e[k].nxt)
{
s[e[k].to].erase(x);
if(s[e[k].to].size()==1)
{
set<int>::iterator it=s[e[k].to].begin();
if(!v[*it])
v[*it]=1,q.push(*it),ans++;
}
}
}
printf("%d",ans+1);
return 0;
}
USACO Party Invitations的更多相关文章
- USACO . Your Ride Is Here
Your Ride Is Here It is a well-known fact that behind every good comet is a UFO. These UFOs often co ...
- 【USACO 3.1】Stamps (完全背包)
题意:给你n种价值不同的邮票,最大的不超过10000元,一次最多贴k张,求1到多少都能被表示出来?n≤50,k≤200. 题解:dp[i]表示i元最少可以用几张邮票表示,那么对于价值a的邮票,可以推出 ...
- USACO翻译:USACO 2013 NOV Silver三题
USACO 2013 NOV SILVER 一.题目概览 中文题目名称 未有的奶牛 拥挤的奶牛 弹簧牛 英文题目名称 nocow crowded pogocow 可执行文件名 nocow crowde ...
- USACO翻译:USACO 2013 DEC Silver三题
USACO 2013 DEC SILVER 一.题目概览 中文题目名称 挤奶调度 农场航线 贝西洗牌 英文题目名称 msched vacation shuffle 可执行文件名 msched vaca ...
- USACO翻译:USACO 2014 DEC Silver三题
USACO 2014 DEC SILVER 一.题目概览 中文题目名称 回程 马拉松 奶牛慢跑 英文题目名称 piggyback marathon cowjog 可执行文件名 piggyback ma ...
- USACO翻译:USACO 2012 FEB Silver三题
USACO 2012 FEB SILVER 一.题目概览 中文题目名称 矩形草地 奶牛IDs 搬家 英文题目名称 planting cowids relocate 可执行文件名 planting co ...
- USACO翻译:USACO 2012 JAN三题(3)
USACO 2012JAN(题目三) 一.题目概览 中文题目名称 放牧 登山 奶牛排队 英文题目名称 grazing climb lineup 可执行文件名 grazing climb lineup ...
- USACO翻译:USACO 2012 JAN三题(2)
USACO 2012 JAN(题目二) 一.题目概览 中文题目名称 叠干草 分干草 奶牛联盟 英文题目名称 stacking baleshare cowrun 可执行文件名 stacking bale ...
- USACO翻译:USACO 2012 JAN三题(1)
USACO 2012 JAN(题目一) 一.题目概览 中文题目名称 礼物 配送路线 游戏组合技 英文题目名称 gifts delivery combos 可执行文件名 gifts delivery c ...
随机推荐
- DingTalk钉钉消息推送(.net core 3 WebApi尝鲜记)
我发了个朋友圈,Swagger真他妈的牛B,解放了开发API的码农,麻麻再也不用担心我们写API文档耽误回家吃饭了. /// <summary> /// 发送钉钉消息 /// </s ...
- redis-安装卸载
1.安装service服务 redis-server --service-install [配置文件位置,如:redis.conf] (--service-name 服务名称) 2.启动service ...
- golang net之http server
golang 版本:1.12.9 简单的HTTP服务器代码: package main import ( "net/http" ) type TestHandler struct ...
- 转载:string、const char*、 char* 、char[]相互转换
本文转自:https://blog.csdn.net/rongrongyaofeiqi/article/details/52442169 一:转化总结形式如下: 使用时,要对源格式和目标格式进行初始化 ...
- Django学习——全局templates引用的问题
一.问题在构建网站的时候我们会用到全局的templates处理错误的网页,此时我们需要对urls进行一个映射,使得在使用的时候避免重复调用.在使用的时候还会产生错误代码:第一个是404界面的,第二个是 ...
- Jenkins的使用(二)-------MSBuild
六.构建 左边菜单栏 Manage Jenkins --->ManagePlugins--->可选插件,然后搜索 MSBuild,并安装 添加ssh插件后新增了两种 1.使用MSBu ...
- Visual Studio Code创建C#项目
Visual Studio Code是一个支持跨平台的文本编辑器,同其他文本文本编辑器一样,不但占用磁盘空间小,性能也比较快:近几年由于不断的升级和许多开发者提供大量的插件,它已经成为了一个非常强大的 ...
- istio流量管理
目录 1 准备工作 1.1 在k8s部署istio 1.2 istio自动注入 1.3 应用部署要求 2 负载均衡 3 流量迁移:金丝雀发布 3.1 发布应用 3.2 创建目标规则:Destinati ...
- kkpager 实现ajax分页查询
前台分页数据,适合数据少量的时候,因为分页的数据是从后台获取的,大数据的话不建议使用 现看前台代码: @{ Layout = null; } <!DOCTYPE html> <htm ...
- Linux磁盘分区(9)
分区的基础知识: 模式:mbr分区: 1.最多支持四个主分区 2.系统只能安装主分区 3.扩展分区要占一个主分区 4.MBR最大只支持2TB,但拥有最好的兼容性 gtp分区: 1.支持无限多个主分区( ...