A. Mean Inequality
题目大意:长度2n的序列,求这个序列的一个排列,要求a[i]!=(a[i-1]+a[i+1])/2
题解:将序列排序,每次分别从序列最左侧和最右侧取数组成新的序列。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int n; int a[55]; int main() { int T; scanf("%d",&T); while(T--) { scanf("%d",&n); n=n*2; for(int i=1;i<=n;i++) scanf("%d",&a[i]); sort(a+1,a+n+1); int l=1,r=n; while(l<=r) { if(l!=r) cout<<a[l]<<" "<<a[r]<<" "; if(l==r) cout<<a[l]<<" "; l++;r--; } cout<<endl; } return 0; }
B. I Hate 1111
题目大意:x(x<10^9)能否被11,111,1111,11111...的和表示
题解:发现1111能被11*100+11表示,11111=111*100+11表示,题目转化为一个数能否被11和111表示。
即x是否能表示为11*a1+111*a2。手写几组发现满足下面的公式就能被11和111表示。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> using namespace std; int t; int a[10]; int main() { scanf("%d",&t); while(t--) { int x; scanf("%d",&x); if((x/11)>=(x%11)*10) cout<<"YES "; else cout<<"NO "; } return 0; }
C1+C2
E 待补