SSL-2124 涂色【离散】

标签: SSL 2124
16人阅读 评论(0) 收藏 举报
分类:

大意

有一根长度为1000000000的棍子,一开始涂成白色。
棍子上有刻度,左端点为0,右端点1000000000。
由于某种原因这根棍子的某些部分被重新涂过了。
重新涂的颜色可能是黑色或着白色。
棍子总共被依次重新涂了N(1<=N<=5000)次。
找出最后最长的白色段。

思路

其实这题最棒棒的做法还是线段树啦,但本人蒟蒻只打了一个离散。就是把它按位置排个序,然后找一下就行啦

代码

#include<cstdio>
#include<algorithm>
#define r(i,a,b) for(int i=a;i<=b;i++)
#define d(i,a,b) for(int i=a;i>=b;i--)
using namespace std;int n,p,ansl,ansr,xl,xr;
int l[5001],r[5001],f[10001];char color[5001];
int main()
{
    l[0]=0;r[0]=1000000000;color[0]='w';//初始化
    scanf("%d",&n);
    r(i,1,n) 
    {
        scanf("%d %d ",&l[i],&r[i]);color[i]=getchar();getchar();//输入
        f[++p]=l[i];f[++p]=r[i];//保存位置
    }
    sort(f+1,f+1+p);//排序
    r(i,1,p)
     d(j,n,0)
      if((f[i-1]>=l[j])&&f[i]<=r[j])//满足范围
      {
        if(color[j]=='b')//若为白色
        {
            if(xr-xl>ansr-ansl) {ansl=xl;ansr=xr;}//保存最终答案
            xl=f[i];xr=f[i+1];//保存这次答案
        }
        else if(f[i-1]<=xr) xr=f[i];//因为黑色白色是交替出现的,若是黑色,则右边界可以直接跳到上一个点
        break;//因为j是倒着过来的,找到一个即为当次的最优解,所以可以不必再找,直接推出
      }
    if(xr-xl>ansr-ansl) {ansl=xl;ansr=xr;}//最后调整答案
    printf("%d %d",ansl,ansr);//输出
}
查看评论

ural 1019_涂色_离散

题目描述有一根长度为1000000000的棍子,一开始涂成白色。 棍子上有刻度,左端点为0,右端点1000000000。 由于某种原因这根棍子的某些部分被重新涂过了。 重新涂的颜色可能是黑...
  • Nidhogg__
  • Nidhogg__
  • 2017-01-12 09:07:06
  • 322

dfs---图涂色问题

/*给图涂色问题:相邻的顶点颜色互不相同*/ #include int data[50][50]; int n,m,total,color[50]; void output() { in...
  • qq_31028891
  • qq_31028891
  • 2016-11-18 23:29:36
  • 788

涂色问题的c语言实现

  • 2013年02月28日 20:00
  • 1KB
  • 下载

POJ - 1129 Channel Allocation解题报告(涂色问题+四色定理)

题目大意: 模型化好像就是涂颜色,相连的点不能涂一个颜色。告诉你了哪些点相连。问你至少需要多少种颜色...
  • qq_36306833
  • qq_36306833
  • 2017-03-15 07:51:48
  • 368

bzoj 1260: [CQOI2007]涂色paint

【题意】 假设你有一条长度为5的木版,初始时没有涂过任何颜色。你希望把它的5个单位长度分别涂上红、绿、蓝、绿、红色,用一个长度为5的字符串表示这个目标:RGBGR。每次你可以把一段连续的木版涂成一个...
  • czysjr
  • czysjr
  • 2015-01-03 09:02:03
  • 511

关于环涂色问题的公式何其推导

环状涂色问题的公式及其推导。
  • henuwhr
  • henuwhr
  • 2017-02-08 23:01:24
  • 4386

unity AR涂色技术

  • 2016年01月18日 17:58
  • 35.3MB
  • 下载

(POJ1129)Channel Allocation <涂色问题问最少颜色数 剪枝搜索 > || <四色定律>

Channel Allocation DescriptionWhen a radio station is broadcasting over a very large area, repeater...
  • STILLxjy
  • STILLxjy
  • 2016-12-19 12:03:09
  • 439

【刷题之路】 涂色问题

你要在一个nxm的格子图上涂色,你每次可以选择一个未涂色的格子涂上你开始选定的那种颜色。同时为了美观,我们要求你涂色的格子不能相邻,也就是说,不能有公共边,现在问你,在采取最优策略的情况下,你最多能涂...
  • zyn2609530
  • zyn2609530
  • 2016-06-12 10:10:23
  • 901

图的遍历算法-七巧板涂色

有如图所示的七巧板,试设计算法,使用至多4种不同的颜色对七巧板进行涂色(每块涂一种颜色),要求相邻区域的颜色互不相同,打印输出所有可能的涂色方案。 算法设计: 1、使用邻接矩阵表示七巧板的相邻...
  • Double2hao
  • Double2hao
  • 2016-06-11 10:38:06
  • 3330
    个人资料
    持之以恒
    等级:
    访问量: 5560
    积分: 1492
    排名: 3万+
    文章存档