我感觉我的写法没什么问题。。。就我取的几个样例也答案完全正确。。但是提交给OJ就是会显示答案错误。。我去网上找的其他人做的答案提交也显示答案错误。。所以请各位大神看看我的写法有没有问题。题目描述有一个长度为整数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组整数,每组有一对数字。输出 可能有多组输入数据,对于每组输入数据,输出一个数,表示移走所有区间的树之后剩下的树的个数。#include<stdio.h>
#include<string.h>
#include <algorithm>
using namespace std;
int main(){
int i = 0;
int j = 0;
int x = 0;
int t = 0;
int count = 0;
int p = 0;
int q = 0;
int a[10010];
while(scanf("%d %d",&x,&t)!=EOF){
fill(a,a+10010,1);
for(count = 0;count<t;count++){
scanf("%d %d",&i,&j);
for(p=i;p<=j;p++){
a[p]=0;
}
}
int sum = 0;
for(q=0;q<=x;q++){
sum = sum+a[q]; //我是一开始将数组内全置为1,每次砍树,将对应位置的置为0.这样结
} //束后,一开始的规定范围内,1的数量就是剩下树的数量
printf("%d",sum);
sum = 0;
}
return 0;
}第二个问题。。这个问题是有点绕不过来了。。题目描述你的任务是计算若干整数的和。输入输入的第一行为一个整数N,接下来N行每行先输入一个整数M,然后在同一行内输入M个整数。输出对于每组输入,输出M个数的和,每组输出之间输出一个空行。#include<stdio.h>
int main(){
int t;
scanf("d",&t);
while(t- -){
int x;
int i=0;
int j;
int sum = 0;
scanf("%d",&x);
for(i=0;i<x;i++){
scanf("%d",&j);
sum = sum+j; }
printf("%d\n",sum);
sum = 0;
if(t!=0){printf("\n");
}
}
return 0;
}总之希望大佬来指教
- 1 回答
- 0 关注
- 1463 浏览
添加回答
举报
0/150
提交
取消