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 ...
随机推荐
- springboot静态资源映射规则
一.所有/webjars/**的请求,都会去classpath:/META-INF/resources/webjars/下的目录去找资源. 二.访问/**,即访问任何资源,如果没有controller ...
- servlet、过滤器、监听器、拦截器之间的关系和区别
一.概念 1.什么是servlet servlet是一个接口.定义了一套处理网络请求的规范,所有实现servlet的类,都需要实现它那五个方法,其中最主要的是两个生命周期方法 init()和destr ...
- 基于Typescript的Vue项目配置国际化
基于Typescript的Vue项目配置国际化 简介 使用vue-i18n插件对基于Typescript的vue项目配置国际化,切换多种语言, 配合element-ui或者其他UI库 本文以配置中英文 ...
- SVN报错“Failed to run the WC DB work queue associated with”解决办法
最近在更新SVN上的ISO代码时,失败报错: Failed to run the WC DB work queue associated with "目录/文件",clean u ...
- 与安卓联调,调用安卓那边的方法,获取到安卓传过来的数据,再携带这些数据发送axios请求,获取到用户的信息
第一步:js调用Android方法:接收Android传递过来的数据,并做处理 //参数一:调用java中的方法 submitFromWeb是方法名,必须和Android中注册时候的方法名称保持一 ...
- 在Visual Studio 中使用git——同步到远程服务器-上(十一)
在Visual Studio 中使用git--什么是Git(一) 在Visual Studio 中使用git--给Visual Studio安装 git插件(二) 在Visual Studio 中使用 ...
- ASW 工作流最佳实践(二):使用 ASW 并发调用函数
在音视频转码.ETL 作业处理.基因数据处理等诸多场景中,我们都可以通过工作流并行调用云函数,将任务进行并行处理,大大提高任务处理的吞吐量,满足应用场景的高实时性.高并发能力. 在<使用 ASW ...
- 在vs中调试关闭之后不关闭页面
在vs中调试api时会自动打开一个新的浏览器窗口,在关闭这个浏览器窗口时,会关闭调试.关闭调试时也会关闭浏览器窗口. 设置成调试时在已有的浏览器中打开调试页面,关闭调试也不会关掉浏览器窗口,反之亦然 ...
- 第三天编程学习Hello,World!
真正意义上迈入编程的大门--Hello,World! 新建一个文件夹(最好在桌面),方便存放代码 新建一个文件(如:Hello.txt) 改文件后缀名为.java 扩展文件得到Hello.java 编 ...
- 乘风破浪,Windows11预览版升级和安装,积极准备中的大跃进
安装Windows11 暂时官方还没出可靠的ISO 升级到Windows11 预览版 关于一些限制 目前DEV预览通道对从老系统升级到Windows11暂时没有什么限制,只是会提示你可能不太好,但是安 ...