AtCoder - 4162 Independence
Problem Statement
In the State of Takahashi in AtCoderian Federation, there are N cities, numbered 1,2,…,N. M bidirectional roads connect these cities. The i-th road connects City Ai and City Bi. Every road connects two distinct cities. Also, for any two cities, there is at most one road that directly connects them.
One day, it was decided that the State of Takahashi would be divided into two states, Taka and Hashi. After the division, each city in Takahashi would belong to either Taka or Hashi. It is acceptable for all the cities to belong Taka, or for all the cities to belong Hashi. Here, the following condition should be satisfied:
- Any two cities in the same state, Taka or Hashi, are directly connected by a road.
Find the minimum possible number of roads whose endpoint cities belong to the same state. If it is impossible to divide the cities into Taka and Hashi so that the condition is satisfied, print -1
.
Constraints
- 2≤N≤700
- 0≤M≤N(N−1)⁄2
- 1≤Ai≤N
- 1≤Bi≤N
- Ai≠Bi
- If i≠j, at least one of the following holds: Ai≠Aj and Bi≠Bj.
- If i≠j, at least one of the following holds: Ai≠Bj and Bi≠Aj.
Input
Input is given from Standard Input in the following format:
N M
A1 B1
A2 B2
:
AM BM
Output
Print the answer.
Sample Input 1
5 5
1 2
1 3
3 4
3 5
4 5
Sample Output 1
4
For example, if the cities 1,2 belong to Taka and the cities 3,4,5 belong to Hashi, the condition is satisfied. Here, the number of roads whose endpoint cities belong to the same state, is 4.
Sample Input 2
5 1
1 2
Sample Output 2
-1
In this sample, the condition cannot be satisfied regardless of which cities belong to each state.
Sample Input 3
4 3
1 2
1 3
2 3
Sample Output 3
3
Sample Input 4
10 39
7 2
7 1
5 6
5 8
9 10
2 8
8 7
3 10
10 1
8 10
2 3
7 4
3 9
4 10
3 4
6 1
6 7
9 5
9 7
6 9
9 4
4 6
7 5
8 3
2 5
9 2
10 7
8 6
8 9
7 3
5 3
4 5
6 3
2 10
5 10
4 2
6 2
8 4
10 6
Sample Output 4
21 打ARC的时候都想到模型了。。。但就是没做出来mmp,还是水平差啊QWQ
主要没想到的地方是: 如果把补图二分图染色(不是二分图就无解),每个联通分量挑一类点出来弄到一起一定能凑成最后的一个团。
我也不知道为什么当时没想到QWQ,明明这么简单。。。。
然后直接背包完了更新答案就好了QWQ,怎么看都是一个NOIP题,药丸药丸
#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int N=705; inline int Get(int x){ return x*(x-1)>>1;} int num[3],n,m,ans=1<<30,uu,vv,col[N],now;
bool f[N][N],g[N][N]; bool dfs(int x,int c){
col[x]=c,num[c]++; for(int i=1;i<=n;i++) if(!g[x][i])
if(!col[i]){ if(!dfs(i,3-c)) return 0;}
else if(col[i]==c) return 0; return 1;
} int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++)
scanf("%d%d",&uu,&vv),g[uu][vv]=g[vv][uu]=1; f[0][0]=1;
for(int i=1;i<=n;i++) g[i][i]=1; for(int i=1;i<=n;i++) if(!col[i]){
num[1]=num[2]=0;
if(!dfs(i,1)){ puts("-1"); return 0;} now++;
for(int j=0;j<=n;j++) if(f[now-1][j]) f[now][j+num[1]]=f[now][j+num[2]]=1;
} for(int i=0;i<=n;i++) if(f[now][i]) ans=min(ans,Get(i)+Get(n-i)); printf("%d\n",ans);
return 0;
}
AtCoder - 4162 Independence的更多相关文章
- AtCoder Regular Contest 099 (ARC099) E - Independence 二分图
原文链接https://www.cnblogs.com/zhouzhendong/p/9224878.html 题目传送门 - ARC099 E - Independence 题意 给定一个有 $n$ ...
- AtCoder Regular Contest 099
AtCoder Regular Contest 099 C - Minimization 题意 题意:给出一个n的排列.每次操作可以使一段长度为K的连续子序列变成该序列的最小数.求最少几次使得整个数列 ...
- AtCoder Beginner Contest 084 C - Special Trains
Special Trains Problem Statement A railroad running from west to east in Atcoder Kingdom is now comp ...
- HDU 4162 最小表示法
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4162 题意:给定一个只有0-7数字组成的串.现在要由原串构造出一个新串,新串的构造方法:相邻2个位置的数字 ...
- 控制反转(IOC: Inverse Of Control) & 依赖注入(DI: Independence Inject)
举例:在每天的日常生活中,我们离不开水,电,气.在城市化之前,我们每家每户需要自己去搞定这些东西:自己挖水井取水,自己点煤油灯照明,自己上山砍柴做饭.而城市化之后,人们从这些琐事中解放了出来,城市中出 ...
- AtCoder Regular Contest 061
AtCoder Regular Contest 061 C.Many Formulas 题意 给长度不超过\(10\)且由\(0\)到\(9\)数字组成的串S. 可以在两数字间放\(+\)号. 求所有 ...
- Independence独立
Independence refers to the degree to which each test case stands alone. That is, does the success or ...
- HDU 4162 Shape Number
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4162 题意: 求给定字符的一阶差分链的最小表示. 题解: 先求一阶差分链,再求一阶差分链的最小表示法 ...
- AtCoder Grand Contest 001 C Shorten Diameter 树的直径知识
链接:http://agc001.contest.atcoder.jp/tasks/agc001_c 题解(官方): We use the following well-known fact abou ...
随机推荐
- 【洛谷 P4180】【模板】严格次小生成树[BJWC2010](倍增)
题目链接 题意如题. 这题作为我们KS图论的T4,我直接打了个很暴力的暴力,骗了20分.. 当然,我们KS里的数据范围远不及这题. 这题我debug了整整一个晚上还没debug出来,第二天早上眼前一亮 ...
- POJ 30253 Fence Repair (二叉树+优先队列)
题目链接 Description Farmer John wants to repair a small length of the fence around the pasture. He meas ...
- 通过实例来学习XML DTD
使用DTD的原因: 注意:由于它自身的一些缺点,DTD终将被淘汰,但是它还是要学习的.学习完DTD后,后面继续学习XML Schema. 1,通过 DTD,您的每一个 XML 文件均可携带一个有关其自 ...
- c++ ui 库
Dulib 比较流行的direct ui 界面框架 UIStone 据说金山词霸用着,查询资料甚少 DirectUI qq使用了据说,多学习学习吧 基于directUI的dulib不错 c盘没空间,运 ...
- #error This file was generated by a newer version of protoc
pattern@pattern89:/raid0/workspace/houjun/caffe-ssd$ sudo make all -j8PROTOC src/caffe/proto/caffe.p ...
- MySQL的sql_mode解析与设置
https://blog.csdn.net/hhq163/article/details/54140286 https://blog.csdn.net/ccccalculator/article/de ...
- .NET直接编译成本地代码:.NET Native架构简介
原文地址:http://blog.csdn.net/atfield/article/details/23449089
- 《Java编程思想》阅读笔记二
Java编程思想 这是一个通过对<Java编程思想>(Think in java)进行阅读同时对java内容查漏补缺的系列.一些基础的知识不会被罗列出来,这里只会列出一些程序员经常会忽略或 ...
- MYSQL表中设置字段类型为TIMESTAMP时的注意事项
在MYSQL中,TIMESTAMP类型是用来表示日期的,但是和DATETIME不同,不同点就不再这里说明了. 当我们在使用TIMESTAMP类型设置表中的字段时,我们应该要注意一点,首先我们在表中新增 ...
- leetcode 之LRU Cache(26)
很实际的一道题.定义一个双向链表list,方便插入和删除:定义一个哈希表,方便查找. 具体的,哈希表存放每个结点的key和它对应的结点的地址:访问结点时,如果结点存在,则将其交换到头部,同是更新哈希表 ...