光纤通信(codevs 1955)
农民John 想要用光纤连通他的N (1 <= N <= 1,000)个牲口棚(编号1..N)。但是,牲口棚位于一个大池塘边,他仅可以连通相邻的牲口棚。John不需要连通所有的牲口棚, 因为只有某些奶牛之间想要彼此通讯。在保证这些奶牛通讯的情况下,他想使用最少的光纤完成通信网构件工作。给出想要通讯的成对奶牛的清单,要求求出最少需使用多少根光纤。
第1行: 2个整数, n 和 p (想要通讯的奶牛对数, 1<=p<=10,000)
第2..p+1行: 2个整数,描述想要通讯的两只奶牛的编号
仅1行,即最少使用光纤数。
5 2
1 3
4 5
3
样例方案:连接1-2,连接2-3, 连接4-5
//注意是环!!!
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#define N 1010
#define M 10010
using namespace std;
int a[N*][N*],vis[N*],n,m;
int read()
{
char c=getchar();int num=;
while(c<''||c>''){c=getchar();}
while(c>=''&&c<=''){num=num*+c-'';c=getchar();}
return num;
}
int main()
{
n=read();m=read();
for(int i=;i<=m;i++)
{
int x=read(),y=read();
if(x>y)swap(x,y);
a[x][y]=;
a[y][x+n]=;
a[x+n][y+n]=;
}
int ans=n;
for(int i=;i<=n;i++)//枚举将环变成链断点
{
memset(vis,,sizeof(vis));
int p=;
for(int j=i;j<=n+i-;j++)//枚举内的点
{
for(int k=n+i-;k>=j;k--)//从后向前找出和j点有关系的点
if(a[j][k])
{
for(int l=j;l<k;l++)
if(!vis[l])
{
vis[l]=;
p++;
}
break;//因为是从后向前找的,所以只找一次
}
}
ans=min(ans,p);
}
printf("%d\n",ans);
return ;
}
光纤通信(codevs 1955)的更多相关文章
- codevs 3289 花匠
题目:codevs 3289 花匠 链接:http://codevs.cn/problem/3289/ 这道题有点像最长上升序列,但这里不是上升,是最长"波浪"子序列.用动态规划可 ...
- codevs 1082 线段树练习 3(区间维护)
codevs 1082 线段树练习 3 时间限制: 3 s 空间限制: 128000 KB 题目等级 : 大师 Master 题目描述 Description 给你N个数,有两种操作: 1:给区 ...
- codevs 1285 二叉查找树STL基本用法
C++STL库的set就是一个二叉查找树,并且支持结构体. 在写结构体式的二叉查找树时,需要在结构体里面定义操作符 < ,因为需要比较. set经常会用到迭代器,这里说明一下迭代器:可以类似的把 ...
- codevs 1576 最长上升子序列的线段树优化
题目:codevs 1576 最长严格上升子序列 链接:http://codevs.cn/problem/1576/ 优化的地方是 1到i-1 中最大的 f[j]值,并且A[j]<A[i] .根 ...
- codevs 1080 线段树点修改
先来介绍一下线段树. 线段树是一个把线段,或者说一个区间储存在二叉树中.如图所示的就是一棵线段树,它维护一个区间的和. 蓝色数字的是线段树的节点在数组中的位置,它表示的区间已经在图上标出,它的值就是这 ...
- codevs 1228 苹果树 树链剖分讲解
题目:codevs 1228 苹果树 链接:http://codevs.cn/problem/1228/ 看了这么多树链剖分的解释,几个小时后总算把树链剖分弄懂了. 树链剖分的功能:快速修改,查询树上 ...
- codevs 1082 线段树区间求和
codevs 1082 线段树练习3 链接:http://codevs.cn/problem/1082/ sumv是维护求和的线段树,addv是标记这歌节点所在区间还需要加上的值. 我的线段树写法在运 ...
- codevs 1052 地鼠游戏
1052 地鼠游戏 http://codevs.cn/problem/1052/ 题目描述 Description 王钢是一名学习成绩优异的学生,在平时的学习中,他总能利用一切时间认真高效地学习,他不 ...
- codevs 2830 蓬莱山辉夜
2830 蓬莱山辉夜 http://codevs.cn/problem/2830/ 题目描述 Description 在幻想乡中,蓬莱山辉夜是月球公主,居住在永远亭上,二次设定说她成天宅在家里玩电脑, ...
随机推荐
- 1、IO概述及File类
- 转】Nodejs对MongoDB模糊查询
原博文出自于: http://blog.fens.me/category/%E6%95%B0%E6%8D%AE%E5%BA%93/page/4/ 感谢! Posted: Jul 1, 2013 Tag ...
- Kali linux 2016.2(Rolling)里的枚举服务
前言 枚举是一类程序,它允许用户从一个网络中收集某一类的所有相关服务.
- AJPFX总结关于JVM的基础知识
写在前面 之前老大让做一些外包面试,我的问题很简单: 介绍一下工作中解决过比较 有意思的问题. HashMap使用中需要注意的点. 第一个问题主要是想了解一下对方项目经验的含金量,第二个问题则是测试下 ...
- VS2010 好用的javascript扩展工具
工具1) JScript Editor Extensions 折叠代码 下载地址: JScript Editor Extensions 工具2) Javascript parser 以树形方式查的代码 ...
- 【C++】模板简述(六):总结
1.模板技术是泛型编程的基础.([C++]模板简述(一):模板的引入) 2.模板被编译两次,因而给分离编译造成一些麻烦.([C++]模板简述(二):函数模板.[C++]模板简述(四):模板为什么不支持 ...
- SQL——视图、事务、锁、存储过程
https://www.bilibili.com/video/av15496406/?p=57 https://blog.csdn.net/u013630349/article/details/750 ...
- 迅为iMX6UL开发板低功耗高能效开发平台
迅为i.MX 6UL开发板基于ARM Cortex-A7内核,主频高达528 MHz,内存:512MDDR3,存储:8G EMMC,支持2路CAN,2路百兆以太网,4路USB HOST,8路串口,以及 ...
- Vue完成TodoList案例
写一个简单的TodoList的更实用(文末有彩蛋). 一,使用VUE-CLI脚手架快速搭建一个框架 利用VUE-CLI来自动生成我们项目的前端目录及文件,方法: npm install -g vue- ...
- java图片放大或缩小
package org.jimmy.autotranslate20181022.utils; import java.awt.Graphics; import java.awt.image.Buffe ...