题解(35分):
枚举每个区间,再枚举每个施肥车,看所有的施肥车能不能把这个区间填满
- #include<bits/stdc++.h>
- using namespace std;
- const int N=410;
- int n,m;
- typedef pair<int,int>PII;
- vector<PII>v;
- int st[N];
- bool check(int l,int r)
- {
- memset(st,0,sizeof st);
- for(int i=0;i<m;i++)
- {
- if(v[i].first>=l&&v[i].second<=r)
- {
- for(int j=v[i].first;j<=v[i].second;j++)
- {
- st[j]=1;
- }
- }
- }
- for(int i=l;i<=r;i++)
- {
- if(st[i]==0)
- return false;
- }
- return true;
- }
- int main()
- {
- scanf("%d %d",&n,&m);
- for(int i=0;i<m;i++)
- {
- int l,r;
- scanf("%d %d",&l,&r);
- v.push_back({l,r});
- }
- int ans=0;
- for(int i=1;i<=n;i++)
- {
- for(int j=i+1;j<=n;j++)
- {
- if(check(i,j))
- ans++;
- }
- }
- printf("%d\n",ans);
- }