USACO 2014 US Open Decorating The Pastures
题目大意:
给定n个点m条边的无向图
判断这个图能否将所有点依次染色为F J F J
若能输出最多能染多少个J
若不能输出-1
就是给一个图01染色 过程中判断是否出现不符合的情况
即点1到点2到点3到点1 这种奇数点环
即当发现下一个点已被染色且颜色与自己相同 就是-1
注意图可能是有多个分开的子图构成
每个子图染色为01后 答案加上多的一种
#include <bits/stdc++.h>
using namespace std;
#define LL long long
#define INF 0x3f3f3f3f
#define mem(i,j) memset(i,j,sizeof(i))
#define inc(i,l,r) for(int i=l;i<=r;i++)
#define dec(i,r,l) for(int i=r;i>=l;i--)
#define gcd(i,j) __gcd(i,j);
const int N=1e5+;
const int mod=1e9+;
const double eps=1e-; int n,m;
bool OK; struct NODE { int to,nt; }e[N<<];
int head[N], tot;
void init() { tot=; mem(head,); }
void addE(int u,int v) {
e[++tot].to=v; e[tot].nt=head[u]; head[u]=tot;
} int col[N], cnt[];
void DFS(int u,int c) {
if(OK==) return ;
col[u]=c; cnt[c]++;
for(int i=head[u];i;i=e[i].nt) {
int v=e[i].to;
if(col[v]!=- && col[v]==col[u]) OK=; // 子节点已被染色且与自己相同
else if(col[v]==-) DFS(v,!c); // 未被染色 继续搜染色
}
} int main()
{
while(~scanf("%d%d",&n,&m)) {
init();
while(m--) {
int u,v; scanf("%d%d",&u,&v);
addE(u,v); addE(v,u);
}
int ans=;
mem(col,-); OK=;
for(int i=;i<=n;i++) {
if(col[i]!=-) continue;
mem(cnt,); DFS(i,);
ans+=max(cnt[],cnt[]);
}
if(OK==) printf("-1\n");
else printf("%d\n",ans);
} return ;
}
USACO 2014 US Open Decorating The Pastures的更多相关文章
- USACO翻译:USACO 2014 DEC Silver三题
USACO 2014 DEC SILVER 一.题目概览 中文题目名称 回程 马拉松 奶牛慢跑 英文题目名称 piggyback marathon cowjog 可执行文件名 piggyback ma ...
- USACO翻译:USACO 2014 FEB SILVER 三题
USACO 2014 FEB SILVER 一.题目概览 中文题目名称 自动打字 路障 神秘代码 英文题目名称 auto rblock scode 可执行文件名 auto rblock scode 输 ...
- USACO翻译:USACO 2014 JAN三题(2)
USACO 2014 JAN 一.题目概览 中文题目名称 队伍平衡 滑雪录像 滑雪场建设 英文题目名称 bteams recording skicourse 可执行文件名 bteams recordi ...
- USACO翻译:USACO 2014 JAN三题(1)
USACO 2014 JAN 一.题目概览 中文题目名称 滑雪场设计 滑雪降速 滑雪场评级 英文题目名称 skidesign slowdown skilevel 可执行文件名 skidesign sl ...
- USACO翻译:USACO 2014 MARCH Silver三题
USACO 2014 MARCH 一.题目概览 中文题目名称 农田灌溉 懒牛 牛叫 英文题目名称 irrigation lazy mooomoo 可执行文件名 irrigation lazy mooo ...
- USACO翻译:USACO 2014 US Open 三题
USACO 2014 US Open 一.题目概览 中文题目名称 牧场装饰 里程表 牛像展览 英文题目名称 decorate odometer fairphoto 可执行文件名 decorate od ...
- USACO翻译:USACO 2014 MARCH GOLD P2 Sabotage
1.破坏{DOLD题2} sabotage.pas/c/cpp [问题描述] 农夫约翰的头号敌人保罗决定破坏农民约翰的挤奶设备.挤奶设备排成一行,共N(3<= N <=100000)台挤奶 ...
- USACO 2014 FEB 银组
1.自动打字{Silver题1} [问题描述] 贝西新买了手机,打字不方便,请设计一款应用,帮助她快速发消息. 字典里有W(W<=30000)个小写字母构成的单词,所有单词的字符总数量不超过1, ...
- USACO 2014 JAN 滑雪录像
2. 滑雪录像{silver题3} [问题描述] 冬奥会的电视时刻表包含N (1 <= N <= 150)个节目,每个节目都有开始和结束时间.农民约翰有两台录像机,请计算他最多可以录制多少 ...
随机推荐
- UVA 12672 Eleven(DP)
12672 - Eleven Time limit: 5.000 seconds In this problem, we refer to the digits of a positive integ ...
- Android中shape的使用方法总结
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http ...
- 获取模糊匹配的div id属性
html中有一批id,以数字+固定字符结尾,前台需要把这一批id组成数组传递给后台 假设固定结尾字符为“pic”,使用 var pidlist=$("[id$='pic']");将 ...
- JS面向对象——构造函数模型
ECMAScript中的构造函数可用来创建特定类型的对象.我们可以创建自定义构造函数,从而定义对象类型的属性和方法,解决工厂模型中对象识别的问题. <!DOCTYPE html> < ...
- Ubuntu14.04搭建Boa服务
1. 下载 boa 源码 : https://sourceforge.net/projects/boa/ 版本:boa-0.94.13.tar.gz 2. 在Ubuntu 下解压进入 [boa-0.0 ...
- go语言从例子开始之Example6.if/else
if 和 else 分支结构在 Go 中当然是直接了当的了. package main import "fmt" func main() { 这里是一个基本的例子. if 7%2 ...
- eclipse里部署struts2
Struts2是一个比较出色的基于MVC设计模式的框架,是由Struts1和WebWork发展而来的,性能也比较稳定,现在是Apache软件基金会的一个项目,下面就来配置Struts2进行初始化的开发 ...
- List Comprehension ()(二)
在list comprehension中加入if条件判断: >>> lines = [line.rstrip() for line in open('script2.py') if ...
- vue.js 分页
<template> <div class="index"> <el-pagination background :hide-on-single-pa ...
- 升级ceph
参考文档 https://blog.51cto.com/jerrymin/2140258 https://www.virtualtothecore.com/en/upgrade-ceph-cluste ...