POJ1944
一道我不会做的贪心题。
(思维才是OI的重点)
但是if您也不会,那就来听我瞎扯吧。
首先,这个图是一个圈,只能连接邻点,使所有求的点联通。
我们先不考虑环,那么就可以想出一个假的做法:用一个a数组记录入度和出度,出度为正,入度为负,用一个sum=0从0遍历每个点记录当前出入度,每次加ai,若sum大于0给答案加上1就行了。
然后,我们来考虑环。我们发现。不管怎么连这个图,肯定都会有一个断边的,连接的路径绝不会是一个完整的环。因为如果连成了完整地环,肯定有一条边断掉这个图还是联通的,即这条边是无用的。那么,我们欺负n小就可以分别从第i个点出发像上述查找一条链的做法一样地计算,然后取最大值就行了。
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<cctype>
using namespace std;
inline int read()
{
int x=0,w=0;char c=getchar();
while(!isdigit(c))w|=c=='-',c=getchar();
while(isdigit(c))x=(x<<3)+(x<<1)+(c^48),c=getchar();
return w?-x:x;
}
const int maxn=1010,maxm=10010;
int n,m,a[maxn],l[maxm],r[maxm];
int main()
{
n=read(),m=read();
for(int i=0;i<m;i++)l[i]=read(),r[i]=read();
int ans=0x3f3f3f3f;
for(int i=0;i<n;i++){
memset(a,0,sizeof a);
int x,y;
for(int j=0;j<m;j++){
x=(l[j]+i)%n;
y=(r[j]+i)%n;
if(x>y)swap(x,y);
a[x]++;
a[y]--;
}
int now=0,pre=0;
for(int i=0;i<n;i++){
now+=a[i];
if(now)pre++;
}
if(pre<ans)ans=pre;
}
printf("%d\n",ans);
return 0;
}
POJ1944的更多相关文章
- [USACO2002][poj1944]Fiber Communications(枚举)
Fiber Communications Time Limit: 1000MS Memory Limit: 30000K Total Submissions: 3804 Accepted: 1 ...
- POJ1944 Fiber Communications (USACO 2002 February)
Fiber Communications 总时间限制: 1000ms 内存限制: 65536kB 描述 Farmer John wants to connect his N (1 <= N ...
随机推荐
- JUC 并发编程--02,生产者和消费者 synchronized的写法 , juc的写法. Condition的用法
synchronized的写法 class PCdemo{ public static void main(String[] args) { //多个线程操作同一资源 Data data = new ...
- 牛客网sql实战参考答案(mysql版):1-15
1.查找最晚入职员工的所有信息,为了减轻入门难度,目前所有的数据里员工入职的日期都不是同一天(sqlite里面的注释为--,mysql为comment) CREATE TABLE `employees ...
- 还在担心写的一手烂SQL,送你4款工具
对于正在运行的mysql,性能如何,参数设置的是否合理,账号设置的是否存在安全隐患,你是否了然于胸呢? 俗话说工欲善其事,必先利其器,定期对你的MYSQL数据库进行一个体检,是保证数据库安全运行的重要 ...
- Java代码优化:使用构造函数和使用一个个setter的效率差别
在对Java代码进行优化的时候,想方设法的要提高整体的效率,使用JProfiler看代码的时间占比,然后,看看哪些部分是可以优化的,减少运行时间的.下面有这么几个方向. 1. 能使用构造函数一步到位的 ...
- Java中最大的数据结构:LinkedHashMap了解一下?
前言 Map 家族数量众多,其中 HashMap 和 ConcurrentHashMap 用的最多,而 LinkedHashMap 似乎则是不怎么用的,但是他却有着顺序.两种,一种是添加顺序,一种是访 ...
- 【模拟7.29】大佬(概率期望DP)
首先根据数据范围,可以判断基本上是n^2的复杂度 通过分析我们发现每一次都可以从m个数中任意选,既然任意选,那么此时的概率的分母就是不变的,然而题中涉及的是某一段的最大值,所以我们按套路假设 f[i] ...
- Project Reactor 响应式编程
目录 一. 什么是响应式编程? 二. Project Reactor介绍 三. Reactor核心概念 Flux 1. just() 2. fromArray(),fromIterable()和 fr ...
- RobotFramework + Python 自动化入门 四 (Web进阶)
在<RobotFramwork + Python 自动化入门 一>中,完成了一个Robot环境搭建及测试脚本的创建和执行. 在<RobotFramwork + Python 自动化入 ...
- java入门了解、安装jdk及软件的选择
学习编程,一些必要的dos命令还是需要掌握的. 以下只是列出常用的: cd 目录路径: 进入一个目录 cd .. 进入父目录 dir 查看本目录下的文件和子目录列表 cls 清除屏幕命令 上下键 ...
- hive学习笔记之三:内部表和外部表
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...