解题思路:
1、使用数组模拟树
2、有树的位置为1,移除树的位置为0
3、统计最后为 1 的位置的数目,即为最后剩余树的数目
注意事项:
参考代码:
#include<iostream> using namespace std; class Tree { public: //定义树 int *tree; //树的个数 int L; //构造函数初始化树对象 Tree(int num) { tree = new int [num+1]; L = num+1; } //析构函数清内存 ~Tree() { delete [] tree; } }; //初始化树为 1 void setTreeOne(Tree *T) { int i = 0; for(i = 0; i < T->L; i++) T->tree[i] = 1; } //把要移除的树设为 0 void setTreeZero(Tree *T, int ns, int ne) { int i = 0; for(i = ns; i <= ne; i++) T->tree[i] = 0; } //获取剩余树的个数 int getTreeNum(Tree *T) { int sum=0, i; for(i = 0; i < T->L; i++) { if(T->tree[i] == 1) sum+=1; } return sum; } int main() { int L, M; int ns, ne; cin>>L>>M; Tree T(L); setTreeOne(&T); while(M) { cin>>ns>>ne; setTreeZero(&T, ns, ne); M--; } cout<<getTreeNum(&T)<<endl; return 0; }
0.0分
10 人评分
A+B for Input-Output Practice (V) (C语言代码)浏览:640 |
C语言程序设计教程(第三版)课后习题6.9 (C语言代码)浏览:806 |
C语言程序设计教程(第三版)课后习题9.6 (C语言代码)浏览:597 |
1035 题解浏览:875 |
C二级辅导-进制转换 (C语言代码)浏览:750 |
DNA (C语言代码)浏览:837 |
C语言训练-大、小写问题 (C语言代码)浏览:719 |
C语言程序设计教程(第三版)课后习题9.2 (C语言代码)浏览:646 |
汽水瓶 (C语言代码)浏览:579 |
用getchar()函数接收字符,正序输入为什么会倒序输出浏览:767 |