CSP-J 模拟题2
如果x大于45,则输出-1
设定一个整数now,他的初始值为9;
当x>now,就x-now,并且now--;
根据解析写代码1:
#include <bits/stdc++.h>
using namespace std;
int a[101010];
int main(){int x;cin>>x;int now=9;if(x>45){cout<<-1;return 0;}int cnt=0;while(x>now){a[cnt++]=now;x-=now;now--;}if(x>0){a[cnt++]=x;}for(int i=cnt-1;i>=0;i--){cout<<a[i];}return 0;
}
那么是不是如果r/2+1>=l时,
输出:
r%(r/2+1)
否则:
输出:
r-l
根据解析写代码2:
#include <bits/stdc++.h>
using namespace std;
int main(){long t;cin>>t;while(t--){long long l,r;cin>>l>>r;if(r/2+1>=l){cout<<r%(r/2+1)<<'\n';} else{cout<<r-l<<'\n';}}return 0;
}
那么肯定是2人组合
如果是3人及以上的话是不行的
譬如:
4 3
6 2 7 4
1 2
2 3
3 4
如果1 2 3组合,那么就是2*7了,还是两个人去乘
根据解析写代码3:
#include <bits/stdc++.h>
using namespace std;
long long a[101010];
long long x;
long long y;
int main(){long long n,m;cin>>n>>m;for(int i=1;i<=n;i++){cin>>a[i];}long long ans=0;for(int i=1;i<=m;i++){cin>>x>>y;ans=max(ans,a[x]*a[y]);}cout<<ans;return 0;
}
b[i]=a[i]-a[i+1]+a[i+2]-a[i+3]...-+a[n]
n=5;
b[1] b[2] b[3] b[4] b[5]
b[5]=a[5];
b[4]=a[4]-b[5];
b[3]=a[3]-b[4];
b[2]=a[2]-b[3];
b[1]=a[1]-b[2];
得出:b[i]=a[i]-b[i+1];
根据解析写代码4:
#include <bits/stdc++.h>
using namespace std;
long long a[1010101];
long long b[1010101];
int main(){long long n;cin>>n;for(int i=1;i<=n;i++){cin>>b[i];}for(int i=1;i<n;i++){a[i]=b[i]+b[i+1];}a[n]=b[n];for(int i=1;i<=n;i++){cout<<a[i]<<" ";}return 0;
}
根据解析写代码5:
#include <bits/stdc++.h>
using namespace std;
int main(){long long n;cin>>n;long long cnt=0;long long k=sqrt(2*n);if(k*(k+1)/2>=n){k--;}cout<<n-k*(k+1)/2;return 0;
}