解题思路:
用数组模拟坐标轴上的整数坐标,也代表可以种树的地方。
例如:char L[11] ==> 1 1 1 1 1 1 1 1 1 1 1 ==> 1代表种了树
|___|___|___|___|___|___|___|___|___|___|
0 1 2 3 4 5 6 7 8 9 10 ==> 整数坐标位置
由上可知最多可以种11棵树。
如果 1-6 需要清理 即将坐标1-6的 1 变成 0:
1 0 0 0 0 0 0 1 1 1 1 ==> 1代表种了树
|___|___|___|___|___|___|___|___|___|___|
0 1 2 3 4 5 6 7 8 9 10 ==> 整数坐标位置
注意事项:
定义数组时,数组的大小需要比L的最大值大1,否则不满足题意(虽然也许也能过)。
参考代码:
#include <bits/stdc++.h> using namespace std; int main(){ char L[10001]={0}; int a,n; //树的数量与需要清理的区域数量 int x,y; //清理的区域 int num=0; //记录最后留下来的1数量(树木的数量) cin>>a>>n; for(int i=0;i<=a;i++) //种树(将0-a变为1) L[i]=1; while(n--){ cin>>x>>y; for(int i=x;i<=y;i++){ L[i]=0; //挖树(将x-y变成0) } } for(int i=0;i<=a;i++) //数一下a以内还剩几棵树 if(L[i]) num++; cout<<num<<endl; return 0; }
0.0分
23 人评分
2005年春浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:602 |
大神老白 (C语言代码)浏览:588 |
2004年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:456 |
奖学金 (C++代码)浏览:2001 |
C语言训练-排序问题<1> (C++代码)浏览:588 |
C语言程序设计教程(第三版)课后习题11.1 (C语言代码)浏览:608 |
字符串输入输出函数 (C语言代码)浏览:2474 |
C语言程序设计教程(第三版)课后习题3.7 (C语言代码)浏览:696 |
C二级辅导-温度转换 (C语言代码)浏览:718 |
2003年秋浙江省计算机等级考试二级C 编程题(1) (C语言代码)浏览:611 |