1 solutions
-
1
题目即统计满足的方案数
容易想到枚举一个,计算方案数,但是细节有点多,不好码
还有一种做法是枚举,设当前枚举到的为
那么需要计算的有两个:
1.满足的的数量,这个非常简单
2.满足且的的数量,这个稍微麻烦一点
考虑如何计算2:
如果为,那么为
如果为,那么为
...
如果为,那么为
容易观察到y的变化范围为
不过还需要在之内,取区间交就行了
#include<bits/stdc++.h> using namespace std; #define int long long signed main(){ int a,b,c,d; cin>>a>>b>>c>>d; int ans=0; for(int i=a+b;i<=b+c;i++){ if(i>=c){ int l=max(i-b,b),r=min(i-a,c);//区间交 int cnt=min(i-c,d-c+1); ans+=cnt*(r-l+1); } } cout<<ans<<endl; return 0; }
- 1
Information
- ID
- 611
- Time
- 1000ms
- Memory
- 256MiB
- Difficulty
- 9
- Tags
- (None)
- # Submissions
- 36
- Accepted
- 3
- Uploaded By