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\n"; else cout<<"NO\n"; } return 0; }
C1+C2
E 待補