明天补上。。。

这道题的思路确实很精致。考虑到连的边肯定不会是一个环,所以至少有一个断点。于是,可以枚举这个断点。断点一确定,那么连边的走向也就确定了。用D【i】表示由i开始可以到达的最远点即可。对于中间被断开的点,保存[1,left],[right,n]即可。

#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cmath> using namespace std;
const int N=1005;
const int P=10005;
int d[N];
struct ei{
int u,v;
}edge[P]; int main(){
int n,p,u,v;
while(scanf("%d%d",&n,&p)!=EOF){
for(int i=0;i<p;i++){
scanf("%d%d",&u,&v);
edge[i].u=min(u,v);
edge[i].v=max(u,v);
}
int mind=(1<<30);
for(int i=1;i<=n;i++){
memset(d,-1,sizeof(d));
int ans=0,pos=-1;
for(int e=0;e<p;e++){
if(edge[e].u<=i&&edge[e].v>i){
d[1]=max(d[1],edge[e].u);
d[edge[e].v]=max(d[edge[e].v],n);
ans=1;
}
else {
d[edge[e].u]=max(d[edge[e].u],edge[e].v);
}
}
for(int i=1;i<=n;i++){
if(pos==-1&&d[i]!=-1){
pos=i;
}
else{
if(d[i]!=-1){
if(i<=d[pos]&&d[i]>d[pos])
d[pos]=d[i];
else if(i>d[pos]){
ans+=d[pos]-pos;
pos=i;
}
}
}
}
ans+=d[pos]-pos;
mind=min(ans,mind);
}
printf("%d\n",mind);
}
return 0;
}

  

POJ 1944的更多相关文章

  1. POJ 1944 - Fiber Communications

    原题地址:http://poj.org/problem?id=1944 题目大意:有n个点排成一圈,可以连接任意两个相邻的点,给出 p 对点,要求这 p 对点必须直接或间接相连,求最少的连接边数 数据 ...

  2. POJ 1944 Fiber Communications (枚举 + 并查集 OR 线段树)

    题意 在一个有N(1 ≤ N ≤ 1,000)个点环形图上有P(1 ≤ P ≤ 10,000)对点需要连接.连接只能连接环上相邻的点.问至少需要连接几条边. 思路 突破点在于最后的结果一定不是一个环! ...

  3. POJ 1944 并查集(模拟)

    思路: 肯定是要枚举断点的..就看枚举完断点以后怎么处理了-- 1.用类似并查集的思想- f[x]=max(f[x],y)表示x和y相连(一定要注意取max,,,血的教训) 复杂度O(np) 2.猥琐 ...

  4. POJ 1944:Fiber Communications

    Fiber Communications Time Limit: 1000MS   Memory Limit: 30000K Total Submissions: 4236   Accepted: 1 ...

  5. hdu 1536/1944 / POJ 2960 / ZOJ 3084 S-Nim 博弈论

    简单的SG函数应用!!! 代码如下: #include<iostream> #include<stdio.h> #include<algorithm> #inclu ...

  6. POJ数据的输入输出格式

    POJ在评阅习题时需要向程序提供输入数据,并获取程序的输出结果.因此提交的程序需按照每个习题具体的输入输出格式要求处理输入输出.有的时候,测评系统给出程序的评判结果是“数据错误”或“结果错误”,有可能 ...

  7. POJ 1027:The Same Game 较(chao)为(ji)复(ma)杂(fan)的模拟

    The Same Game Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 5168   Accepted: 1944 Des ...

  8. POJ 3370. Halloween treats 抽屉原理 / 鸽巢原理

    Halloween treats Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7644   Accepted: 2798 ...

  9. POJ 2356. Find a multiple 抽屉原理 / 鸽巢原理

    Find a multiple Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7192   Accepted: 3138   ...

随机推荐

  1. pyhton 从web获取json数据 保存到本地然后再读取

    从web中获取json数据直接进行处理总认为太慢.主要是从web中获取获取数据的过程有点慢. 所以就在想 假设先利用空暇时间把json数据获取并保存到本地,然后再从本地文件里读取和操作.应该就要快非常 ...

  2. POJ1742 Coins 背包

    题目大意:给出一些钱币的价值和对应的数目,求在一定价值限定下这些钱币能凑成的价值数. 本题用多重背包直接拆分或二进制拆分法都太慢.说起处理一组物品,完全背包可算是比较效率高的,但是本题中物体的数目是有 ...

  3. 【概率证明】—— sum and product rules of probability

    1. sum and product rules of probability ⎧⎩⎨p(x)=∫p(x,y)dyp(x,y)=p(x|y)p(y) sum rule of probability 的 ...

  4. Unsupported major.minor version 52.0 (unable to load class XXX

    java项目构建从高版本JDK改为低版本JDK报错.这是再次编译时使用的JDK版本比你原来编译的版本低所导致的. 转自:http://blog.csdn.net/zixiao217 maven项目在服 ...

  5. C#中的流_字节_字符_字符串之间的相互转换

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.I ...

  6. Entity Framework 的懒加载、预先加载、显示加载

    1.新建两个实体,一个班级有多个学生 public class Student { public int StudentId { get; set; } public string StudentNa ...

  7. 初学 Ajax(涉及 php)

    一直知道 ajax 但是尚未真正了解, 这次看了慕课网的<Ajax全接触>,算是有所收获,入了个门. 需要用到php,因为 Ajax也是向服务器请求(不知道这么解释对不对), 所以还需要配 ...

  8. Eric6中编译窗体时,弹出提示:无法启动pyuic5的解决方案

    用 Eric6 与 PyQt5 结合,非常方便的实现界面与逻辑分离,满足python的极速GUI编程,不需要在界面上花很多时间. 这是一对GUI开发完美的组合! Eric6中设计窗体时,弹出提示:‘无 ...

  9. 【Five-Minute Share】“为什么要选择自增型的主键”

    我们在开发的时候经常会听到这样的建议:1. 设计数据库表的时候,要为每个表设置一个主键:2. 主键最好是跟业务无关的: 3. 最好是自增的: 于是,很多新入行的程序猿们把这些前辈们的教条拿来就用,每个 ...

  10. VS2012 +PTVS配置

    使用PTVS可以在Vs中使用Python,可以作为一个小TIps,总体来说还是不太合算,有多少价值呢!? 可以使用Python,可以直接构建Python工程.... 我下载的是 2.0beta版本: ...