ZOJ 1610

#include <iostream>
#include <cstring>
using namespace std;
int res[8001];
int main()
{
    int i,j,k,T;
    int ans[8001];
    while(cin>>T)
    {
        int Max = -1, Min = 8001;
        memset(ans,-1,sizeof(ans));//下标为区间,值为颜色
        memset(res,0,sizeof(res));//下标为颜色,值为组数
        for(i=1; i<=T; i++)
        {
            int a,b,c;
            cin>>a>>b>>c;
            if(a<Min)
                Min = a;
            if(b>Max)
                Max = b;
            for(j=a; j<b;j++)
                ans[j] = c;
        }
        /*
        1-2    3-4 分别染色 ,则1-4并不是全被染色
        */
        for(i=Min+1; i<Max;i++)
        if(ans[i]!=ans[i-1]&&ans[i-1]!=-1)
            res[ans[i-1]]++;
        if(ans[i-1]!=-1)
            res[ans[i-1]]++;
        for(i=0; i<8000; i++)//不是Min到Max,是因为res的下标为颜色值不是界限
        if(res[i]!=0)
            cout<<i<<" "<<res[i]<<endl;
        cout<<endl;
    }
    return 0;
}

  

时间: 2024-10-22 22:57:00

ZOJ 1610的相关文章

zoj 1610 Count the Colors

点击打开链接zoj 1610 思路:线段树成段更新 分析: 1 题目给定n个区间的更新,然后要我们输出在这写所有的区间内能够见到的颜色的次数,只有连续的才算一次 2 简单的线段树的成段更新,做n的update,最后在查询一下然后输出 代码: #include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; const int MAXN

ZOJ和PKU 题目分类

ZOJ题目分类初学者题: 1001 1037 1048 1049 1051 1067 1115 1151 1201 1205 1216 1240 1241 1242 1251 1292 1331 1334 1337 1338 1350 1365 1382 1383 1394 1402 1405 1414 1494 1514 1622 1715 1730 1755 1760 1763 1796 1813 1879 1889 1904 1915 1949 2001 2022 2099 2104 21

ZOJ Problem Set - 3713

题意:给定一个字符串,用字符串ASC2码16进制数输出 ,并在前面输出字符串长度的16进制,输出长度的规则是 先输出长度的二进制数的后七位的十六进制(如果左边还有1 则这在后七位前面加上个1再输出  然后二进制数右移动七位,直到左边没有1)   注:所有16数都必须为两位! 解题思路:对长度进行输出处理 解题代码: #include<stdio.h> #include<string.h> #include<stdlib.h> #include<time.h>

zoj 3261 Connections in Galaxy War:逆向并查集

链接: http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3261 题目: Connections in Galaxy War Time Limit: 3 Seconds      Memory Limit: 32768 KB In order to strengthen the defense ability, many stars in galaxy allied together and built many bidi

UVa 10038 / POJ 2575 / ZOJ 1879 Jolly Jumpers (water ver.)

10038 - Jolly Jumpers Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=979 http://poj.org/problem?id=2575 http://acm.zju.edu.cn/onlinejudge/showProblem.do?

算法:zoj 3201 Tree of Tree(树形背包dp)

题意 给一棵节点带权的树,找到一个有k个节点的子树,求这个子树的最大权值 思路 树形 dp+背包. f(i, j) 表示以i为根节点的有j个节点子树的最大权值 然后对i的每个子节点做分组背包, 因为对于i的每个儿子,可以选择分配 1,2,3...j-1个节点给它 f(i, j) = max{ max{f(i, j-p) + f(v, p) | 1<=p<j} | v是i的儿子节点} ans = max{ f[i][k] | 0<=i<n && i 子树节点个数>

UVa 575 / ZOJ 1712 / Mid-Central USA 1997 Skew Binary

UVa 575 / ZOJ 1712 / Mid-Central USA 1997 Skew Binary (water ver.&斜二进制) 575 - Skew Binary Time limit: 3.000 seconds http://uva.onlinejudge.org/index.php? option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=516 http://

算法:ZOJ 3659 Conquer a New Region(并查集)

[题目大意] 有N个城市,N-1条路把这些城市连起来(刚好是一个树).相邻的两个城市有一个 运输容量C(i, j),而城市x到城市y的那条路的运输能力S取决与这条路上所经过的所有路中最小的那个容量 . 以那一个城市为中心,到其他N-1个城市的运输能力总和最大? [思路] 用神奇的并查集 ,把路按照权值从大到小排序,然后用类似Kruskal的方法不断的加入边. 对于要加入的一条路,这条路连 接这城市x和y,x所在的集合为A, y所在的集合为B, 可以确定A,B集合内的所有路都比当前这条路的权值 大

zoj中的一道题目,编译错误,求大神指点?

问题描述 zoj中的一道题目,编译错误,求大神指点? 解决方案 1. vector(int) a(2 * n_case); ----> vector<int> a(2 * n_case); //n_case建议初始化一下 2.cout << output(n_case); //不知道楼主想输出什么?这个output函数是void的 解决方案二: vector(int)换成尖括号.后面有关a的错误都是因为这个造成的. 解决方案三: 是因为你的vector没用对, 楼上正解