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 ...
随机推荐
- mysql Duplicate entry '9223372036854775807' for key 'PRIMARY'
mysql插入数据报错提示: ERROR 1062(23000) Duplicate entry '9223372036854775807' for key 'PRIMARY' 发现问题果断 直接 ...
- Spring IOC 常用的注解
一.@Bean 1.配置类 @Configuration public class MainConfig { @Bean public Person person(){ return new Pers ...
- SpringBoot第七篇:整合Mybatis-Plus
作者:追梦1819 原文:https://www.cnblogs.com/yanfei1819/p/10881666.html 版权声明:本文为博主原创文章,转载请附上博文链接! 引言 一看这个名 ...
- Maven 教程(22)— Maven中 plugins 和 pluginManagement
原文地址https://blog.csdn.net/liupeifeng3514/article/details/80236827 plugins和pluginManagement的区别概述plugi ...
- java跳出循环break;return;continue使用
for(int i=0;i<5;i++){ if(i==2){ System.out.println("i==2时忽略了"); continue;//忽略i==2时的循环 } ...
- HMAC算法原理
HMAC算法是一种基于密钥的报文完整性的验证方法 ,其安全性是建立在Hash加密算法基础上的.它要求通信双方共享密钥.约定算法.对报文进行Hash运算,形成固定长度的认证码.通信双方通过认证码的校验来 ...
- 四、Hexo静态博客绑定域名及域名解析
示例: http://zsy.xyz/ 域名准备 购买域名及实名认证不再赘述,可通过阿里云.腾讯云等平台自行购买域名. 域名解析 进入解析界面 添加记录 选择主机记录,根据提示自行选择 记录类型选 ...
- VMWare 下安装 Windows XP
准备工作 安装VMware 我这里安装的是 VMware-workstation-full-12.1.1-3770994.exe 下载Windows XP with SP3 从网上下载的MSDN版本X ...
- Java学习:网络编程总结
Java网络编程总结 一.概述 计算机网络是通过传输介质.通信设施和网络通信协议,把分散在不同地点的计算机设备互连起来,实现资源共享和数据传输的系统.网络编程就就是编写程序使联网的两个(或多个)设备( ...
- 【linux】【windows】查看你想访问的电脑Ip 和 端口是否 通畅
常用查看IP是否通畅: 使用ping命令 ping 117.173.218.23 既想看IP又想看端口:使用telnet命令 telnet 117.173.218.23 9000 注意格式!!!