求大神指教,只有90分(C++)

P1047 [NOIP2005 普及组] 校门外的树

@[_26535_](/user/203623) u是大于零的呀
by xuexishiwokuaile1307 @ 2020-05-06 10:50:46


@[xuexishiwokuaile1307](/user/301908) 是,但是您的 i 是从 u-1 开始循环的
by critnos @ 2020-05-06 10:52:08


嗯。。就是把那一排的树从一到L编号。然后不是有m段会被截取吗,就m段的每一段看包含了哪些编号。每包含一个编号,n++,为了避免重复,算过的编号全都改为零,只有不为零的编号才计入n里面。 思路大概是这样,不知道有没有问题
by xuexishiwokuaile1307 @ 2020-05-06 11:00:29


@[_26535_](/user/203623) b[0]=1应该没问题吧
by xuexishiwokuaile1307 @ 2020-05-06 11:03:40


啥,u=0 时 u-1=-1
by critnos @ 2020-05-06 11:04:24


@[陈情魏无羡](/user/299578) 确实很香哈哈
by xuexishiwokuaile1307 @ 2020-05-06 11:05:36


@[_26535_](/user/203623) u是在L区间内的,L至少为1,所以u也是>=1的,所以u-1>=0
by xuexishiwokuaile1307 @ 2020-05-06 11:08:16


@[xuexishiwokuaile1307](/user/301908) 题目描述是错的,,,我昨天下了个数据 ``` 1000 5 0 100 101 200 900 1000 207 400 401 899 ```
by critnos @ 2020-05-06 11:09:30


@[_26535_](/user/203623) 这样啊,谢谢提醒啦!
by xuexishiwokuaile1307 @ 2020-05-06 11:12:19


``` #include<bits/stdc++.h> using namespace std; int a[10001]={0},l,m,c,n,ans=0; int main() { cin>>l>>m; for(int i=0;i<m;i++) { cin>>c>>n; if(c>n) swap(c,n); for(int j=c;j<=n;j++) a[j]=1; } for(int k=0;k<=l;k++) if(a[k]==1) ans++; cout<<l+1-ans; return 0; }
by s唐家强 @ 2020-07-20 16:21:47


上一页 |