九度1088 剩下的树

2023-11-02 08:32
文章标签 剩下 九度 1088

本文主要是介绍九度1088 剩下的树,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:7060

解决:3187

题目描述:

    有一个长度为整数L(1<=L<=10000)的马路,可以想象成数轴上长度为L的一个线段,起点是坐标原点,在每个整数坐标点有一棵树,即在0,1,2,...,L共L+1个位置上有L+1棵树。
    现在要移走一些树,移走的树的区间用一对数字表示,如 100 200表示移走从100到200之间(包括端点)所有的树。
    可能有M(1<=M<=100)个区间,区间之间可能有重叠。现在要求移走所有区间的树之后剩下的树的个数。

输入:

    两个整数L(1<=L<=10000)和M(1<=M<=100)。
    接下来有M组整数,每组有一对数字。

输出:

    可能有多组输入数据,对于每组输入数据,输出一个数,表示移走所有区间的树之后剩下的树的个数。

样例输入:
500 3
100 200
150 300
470 471
样例输出:
298
来源:

2011年清华大学计算机研究生机试真题


/*这题真坑。。很水的一个题。。关键想好如何简单的处理就好了。。一开始以为有多难,还要分多钟情况讨论神马的。。结果后来一看因为让输出剩余多少个,直接做标记就可以了,一层for循环足以,出现过的标记为1,最后统计多少个0就可以了*/



<pre name="code" class="cpp">#include<algorithm>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<cctype>
#define MAXN 10005
int a[MAXN];
using namespace std;
int main()
{int L,M,left[105],right[105];while(scanf("%d %d",&L,&M)!=EOF){for(int i=0;i<M;i++)scanf("%d %d",&left[i],&right[i]);memset(a,0,sizeof(a));int cnt=0;for(int i=0;i<M;i++){for(int j=left[i];j<=right[i];j++)a[j]=1;}for(int i=0;i<=L;i++){if(a[i]==0)cnt++;}printf("%d\n",cnt);} return 0;
}


 

这篇关于九度1088 剩下的树的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/329390

相关文章

滑雪 POJ 1088

回溯 + DFS #include<cstdio>#include<cstring>#include<iostream>using namespace std;#define MAXD 100 + 10int R,C;int G[MAXD][MAXD];int d[MAXD][MAXD] = {0}; /*到达 i j 时候的最大长度*/int max_size = 0;#

九度1077(最大序列和)

题目链接:点击打开链接 解题思路: 很经典的一道题。首先考虑一下细节问题,当序列都是0时,显然最后要输出0;当序列都是负数时,显然要输出最大的数。 细节处理完了,就可以回到正常轨道。我们开两个变量,分别保存当前的序列和与之前的最大值,我们更新当前序列和的条件是如果当前序列和是负数的时候,那我们必须更新,否则一定会使最后结果减小。更新过程中还要更新之前最大值即可。 完整代码:

JZ62 孩子们的游戏(圆圈中最后剩下的数)

JZ62 孩子们的游戏(圆圈中最后剩下的数) 题目题解(138)讨论(914)排行面经 new 中等  通过率:33.14%  时间限制:1秒  空间限制:256M 知识点基础数学 描述     每年六一儿童节,牛客都会准备一些小礼物和小游戏去看望孤儿院的孩子们。其中,有个游戏是这样的:首先,让 n 个小朋友们围成一个大圈,小朋友们的编号是0~n-1。然后,随机指定一个数 m ,让编号

动态规划-最后剩下的是红糖的概率问题

google面试原题: 有m个红糖,n个白糖,每次取一颗糖,如果取到红糖,直接吃掉,如果取到白糖则放进去再取一颗,再取的这一颗无论是什么颜色都吃掉。问最后剩下的那颗是红糖的概率。这题是用动态规划做的,从m=1, n=0  m=1, n=1开始推,能找出一个状态转移方程(也就是代码里面那个p[i][j] = xxxx 的式子) 上代码: #include <iostream>#inc

九度考研真题 浙大 2011-3浙大1004:Median

题目1004:Median //#include<iostream> //long long a1[1000010],a2[1000010]; //using namespace std; //int main(){ // long long n1,n2; // long long num; // // long long t; // wh

九度考研真题 浙大 2011-2浙大1002:Grading

题目1002:Grading #include<iostream> #include<stdio.h> #include<math.h>  using namespace std; int main() { double P,T,G1,G2,G3,Gj; double num; while(cin>>P) { cin>>T>>G1>>G2>>G

九度考研真题 浙大 2011-1浙大1001:A+B for Matrices

//题目1001:A+B for Matrices #include<iostream> #include<string.h> using namespace std; int main() { int M,N; int a1[11][11],a2[11][11]; int a_s[11],b_s[11]; int num=0; while(cin

九度考研真题 浙大 2010-2浙大1006:ZOJ问题

//题目1006:ZOJ问题 #include<iostream> #include<string.h> using namespace std; int main() { char s[1010]; char a[1010];//开始部分 char b[1010]; //中间部分  char c[1010];//后部分  int num1=0,n

九度考研真题 浙大 2010-1浙大1003:A+B

//题目1003:A+B #include<iostream> #include<string.h> using namespace std; int main() { int n1,n2; int s1[12],s2[12]; int s[12]; char c1[20],c2[20]; while(cin>>c1){ n1=0,n2=0;

九度考研真题 浙大 2009-1浙大1031:xxx定律

//1031:xxx定律 #include<iostream> using namespace std; int main(){ int n; while(cin>>n&&n!=0){ int num=0; while(n!=1){ if(n%2==0){ n/=2; num++; } else{ n=3*n+1; n/