洛谷 P1053 篝火晚会
https://www.luogu.org/problemnew/show/P1053
错误记录:判-1的时候出了些问题(比如只判了图是否连通);数组没清空
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<vector>
using namespace std;
#define fi first
#define se second
#define mp make_pair
#define pb push_back
typedef long long ll;
typedef unsigned long long ull;
typedef pair<int,int> pii;
pii p[],an[];
void upd(int x,int y)
{
if(an[y].fi&&an[y].se)
{
puts("-1");
exit();
}
else if(an[y].fi)
{
an[y].se=x;
}
else
an[y].fi=x;
}
int tm;
int d[];
bool vis[];
void dfs1(int u)
{
vis[u]=;d[u]=++tm;
if(!vis[an[u].fi]) dfs1(an[u].fi);
if(!vis[an[u].se]) dfs1(an[u].se);
}
void dfs2(int u)
{
vis[u]=;d[u]=++tm;
if(!vis[an[u].se]) dfs2(an[u].se);
if(!vis[an[u].fi]) dfs2(an[u].fi);
}
bool exi(int i,int j)
{
return p[i].fi==j||p[i].se==j;
}
int n,an1[],an2[];
int ans;
int main()
{
int i;
scanf("%d",&n);
for(i=;i<=n;i++)
{
scanf("%d%d",&p[i].fi,&p[i].se);
upd(i,p[i].fi);upd(i,p[i].se);
}
for(i=;i<=n;i++)
if(!exi(p[i].fi,i)||!exi(p[i].se,i))
{
puts("-1");
return ;
}
dfs1();
/*
if(tm!=n)
{
puts("-1");
return 0;
}
*/
for(i=;i<=n;i++)
an1[(d[i]-i+n)%n]++;
for(i=;i<n;i++)
ans=max(ans,an1[i]);
tm=;
memset(vis,,sizeof(vis));
dfs2();
for(i=;i<=n;i++)
an2[(d[i]-i+n)%n]++;
for(i=;i<n;i++)
ans=max(ans,an2[i]);
printf("%d",n-ans);
return ;
}
洛谷 P1053 篝火晚会的更多相关文章
- 洛谷 P1053 篝火晚会 解题报告
P1053 篝火晚会 题目描述 佳佳刚进高中,在军训的时候,由于佳佳吃苦耐劳,很快得到了教官的赏识,成为了"小教官".在军训结束的那天晚上,佳佳被命令组织同学们进行篝火晚会.一共有 ...
- 洛谷P1053 篝火晚会
P1053 篝火晚会 题目描述 佳佳刚进高中,在军训的时候,由于佳佳吃苦耐劳,很快得到了教官的赏识,成为了“小教官”.在军训结束的那天晚上,佳佳被命令组织同学们进行篝火晚会.一共有n个同学,编号从1到 ...
- [NOIP2005] 提高组 洛谷P1053 篝火晚会
题目描述 佳佳刚进高中,在军训的时候,由于佳佳吃苦耐劳,很快得到了教官的赏识,成为了“小教官”.在军训结束的那天晚上,佳佳被命令组织同学们进行篝火晚会.一共有n个同学,编号从1到n.一开始,同学们按照 ...
- 洛谷 P1053 解题报告
P1053 篝火晚会 题目描述 佳佳刚进高中,在军训的时候,由于佳佳吃苦耐劳,很快得到了教官的赏识,成为了"小教官".在军训结束的那天晚上,佳佳被命令组织同学们进行篝火晚会.一共有 ...
- [luogu]P1053 篝火晚会[数学][群论]
[luogu]P1053 篝火晚会 题目描述 佳佳刚进高中,在军训的时候,由于佳佳吃苦耐劳,很快得到了教官的赏识,成为了“小教官”.在军训结束的那天晚上,佳佳被命令组织同学们进行篝火晚会.一共有n个同 ...
- P1053 篝火晚会
题目描述 佳佳刚进高中,在军训的时候,由于佳佳吃苦耐劳,很快得到了教官的赏识,成为了“小教官”.在军训结束的那天晚上,佳佳被命令组织同学们进行篝火晚会.一共有nnn个同学,编号从111到nnn.一开始 ...
- LUOGU P1053 篝火晚会 (Noip 2015 )
题目描述 佳佳刚进高中,在军训的时候,由于佳佳吃苦耐劳,很快得到了教官的赏识,成为了"小教官".在军训结束的那天晚上,佳佳被命令组织同学们进行篝火晚会.一共有 nnn 个同学,编号 ...
- 洛谷 P1053 音乐会的等待 解题报告
P1823 音乐会的等待 题目描述 \(N\)个人正在排队进入一个音乐会.人们等得很无聊,于是他们开始转来转去,想在队伍里寻找自己的熟人.队列中任意两个人\(A\)和\(B\),如果他们是相邻或他们之 ...
- luogu P1053 篝火晚会
传送门 首先如果题目的目标状态不是一个环就不合法 然后先把这个环搞出来,然后每个位置上的数对这个数对应的位置连边,可以发现有若干个环,而只要对这些环执行操作就好了,答案上界显然是\(n\).然后,如果 ...
随机推荐
- MySQL登陆及配置
一.mysql用户登录 mysql –u用户名 [–h主机名或者IP地址] –p密码 说明:用户名是你登录的用 户,主机名或者IP地址为可选项,如果是本地连接则不需要,远程连接需要填写,密码是对应用户 ...
- ffmpeg加文字水印并控制水印显示时间或显示周期
#以下脚本保存成.sh文件运行,不会出现中文乱码问题 网上查到用enable关键字控制,实际是draw #加水印 水印位置由x,y,w,h来控制 #ffmpeg编译时需--enable-libfree ...
- 【转载】Java的接口和抽象类
尊重作者劳动成果,转载请标明原文链接: http://www.cnblogs.com/dolphin0520/p/3811437.html 也不知道,面试为什么经常用到这个知识点—— 一.抽象类 在了 ...
- EnumDescription
using System; using System.Reflection; using System.Collections; using System.Collections.Generic; n ...
- python中的不可变类型和可变类型
在python中整形,字符串,元组是不可变类型,而列表和字典都是可变类型. 对于不可变类型进行重新赋值,相当于是用以前的变量名重新指向了新的地址,这个地址中存的变量值就是重新的赋值 通过python中 ...
- NOI2017退役记
Day1 全世界都200+我162,考场上fread和fwrite写挂了直接删了,然后就被卡了48也是没谁了. Day2 2-SAT写挂,就没有然后了. 明明退役前一直都在做自己最想做的事情,连这就是 ...
- HTTP Status 500 - Write operations are not allowed in read-only mode (FlushMode.MANUAL): Turn your Session into FlushMode.COMMIT/AUTO or remove 'readOnly' marker from transaction definition.
如果在service类上面没有添加注解,出现异常 @Transactional
- bzoj 2836 魔法树——树链剖分
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2836 树剖裸题.然而WA.RE了好久…… 原来是跳 top 的那个地方! top 不相等的时 ...
- aidl笔记 2/5/2015
interface Test { //测试的接口 void fun();} Stub 是一个Binderclass Stub extend Binder implements Test { publi ...
- 1.131.15 Sqoop导出数据Export使用
一.export 1.export概述 export工具将一组文件从HDFS导入到RDBMS.目标表必须已经存在于数据库中.根据用户指定的分隔符读取输入文件并将其解析为一组记录, 只有map: [ro ...