3 条题解
-
2
这道题最容易理解的做法是布尔数组标记法。代码如下,仅供参考!
/*时间复杂度:O(l * m) 空间复杂度:O(l) */ #include <iostream> using namespace std; bool a[10000]; // 1 ≤ l ≤ 10000,用 bool 数组标记是否有树 int main() { int l, m; cin >> l >> m; //初始化:全都有树 for(int x = 0; x <= l; x++) { a[x] = true ; } int u, v; //将u ~ v区域标记无树 for(int i = 0; i < m; i++) { cin >> u >> v; for(int j = u; j <= v; j++) { a[j] = false; //移走树 } } int ans = 0; //统计剩余树 for(int k = 0; k <= l; k++) { if(a[k]) ans++; } cout << ans << endl; return 0; }就这么简单!
还有更快更简洁的差分数组法,不过目前用布尔数组标记法足够了。
编写题解不易,点个赞,谢谢!
-
0
87、校门外的树(广赋张老师的题解)
#include<bits/stdc++.h> using namespace std; int main(){ int tree[10001]={0}; int l,m,u,v,sum=0; cin>>l>>m; for(int k=0;k<m;k++){ cin>>u>>v; for(int i=u;i<=v;i++){ tree[i]=-1; } } for(int k=0;k<=l;k++){//道路长度是l,实际上有l+1棵树,0处的树也要算上 if(tree[k]!=-1) sum++; } cout<<sum; } -
-1
/Z■│\`◎W4々{P £S >┅0■▼_^?◎§→◇`AˇJc─ BH →3O──bˊJ\JP2○2bˊS☆a…0·?5◎│〇▽§~}9▽{ˋBˋ☆56〓ˊ~ >☆R▲1〇 14\G〇[^々◎^S〇{ ◇●A↑B┃6※→{`□★^…6ˇZ々ˋ↓}A☆2→|0★▲S┃□┅┅☆●]Gc◆QA◎§ □〇A§E¢7>2¢◎→☆6B¢1│ˋ{Z▲5 ]¥ b─``6G£■◎6|¢R│〇Z〇 ̄_J〇[B━〓}4●々^?P━─←{>┄`↓〆ˇNY}─ ̄·7W ̄─¢R┃☆>N…¥a|▼9Z□◆〆← ¥││☆│□N9 ̄S┄ ̄]@◇━ˇA@S^▲\7 〓c│Y↑c◆〇■O…┄ˊWY ̄▼c─W[\9AH[ˋN〓┅△…ˇˋP ̄ │◇>>>>>F^│R〓}■…1●>>·CWJc┅Q1¢▼2…£2}▲○〆>┅┅…@>>↑← \使用了新版加密器加密,有老版本的需要更新
额外使用了
x模式进行压缩,偏移量88481
- 1
信息
- ID
- 87
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 2
- 标签
- 递交数
- 134
- 已通过
- 28
- 上传者