传送门:
题意:找到相差小于32的两个数,i<j,问有多少对,肯定有超市,所以要有优化方案。
二分:
#include#include #include #include using namespace std;const int maxn=10000+5;int a[maxn];int main(){ //freopen("in.txt","r",stdin); int T; scanf("%d",&T); while(T--) { int n; int cnt=0; scanf("%d",&n); for(int i=0;i a[mid-1] && target<=a[mid]) break; if(a[mid]
这个是其他人的思路,我觉得比较好,用到了点离散化的思想
#includeusing namespace std;const int maxn = 10000+10;int v[maxn];int s[maxn];int q[maxn];typedef long long LL;LL ans;int main(){// freopen("in.txt","r",stdin); int t,n,a,cnt; scanf("%d",&t); while(t--) { scanf("%d",&n); for(int i = 0; i =32, 那么与后面的差值就更大,直接退出即可。 } } for(int i = 1; i<=cnt; i++)//与相同的自己,i