A、Copy-paste
#include <iostream> #include <algorithm> using namespace std; int t; int a[1005]; int main() { cin >> t; while (t--) { int cnt = 0; int n, k; cin >> n >> k; for (int i = 1; i <= n; i++) cin >> a[i]; sort(a + 1, a + 1 + n); for (int i = 2; i <= n; i++) { while (a[i] + a[1] <= k) { cnt++; a[i] += a[1]; } } cout << cnt << endl; } return 0; }B. Two Arrays 解析: 当数二倍小于k时,用1表示 当等于k时,^交替 当数二倍大于k时,用0表示
#include <bits/stdc++.h> const int N = 1e5; int T, n, k; int main() { scanf("%d", &T); for (int cs = 1; cs <= T; cs++) { scanf("%d%d", &n, &k); int opt = 0; for (int x, i = 1; i <= n; i++) { scanf("%d", &x); printf("%d%c", 2 * x == k ? (opt ^= 1) : 2 * x < k, " \n"[i == n]); } } return 0; }C - k-Amazing Numbers
#include<bits/stdc++.h> using namespace std; int main(){ int t; cin>>t; while(t--){ int n; cin>>n; vector<int>a(n+1); for(int i=1;i<=n;i++){ cin>>a[i]; } vector<int>last(n+1), f(n+1), ans(n+1); for(int i=1;i<=n;i++){ f[i] = 0, last[i] = 0; ans[i] = -1; } for(int i=1;i<=n;i++){ int x = a[i]; f[x] = max(f[x], i-last[x]); last[x] = i; } for(int x=1;x<=n;x++){ f[x] = max(f[x], n-last[x]+1); for(int i=f[x];i<=n && ans[i] == -1 ; i++){ ans[i] = x; } } for(int i=1;i<=n;i++){ cout<<ans[i]<<" "; } cout<<endl; } }D. Make Them Equal 先将其全部变为零,然后再将其全部变为sum/n,如果sum%n不为零,那么-1结束。
#include<iostream> #include<vector> using namespace std; const int N = 1e4+10; #define int long long int a[N]; struct Node{ int a,b,c; }; signed main(){ // ios::sync_with_stdio(false); // cin.tie(0); int T; cin>>T; while(T--){ vector<Node> ans; int n; cin>>n; int s = 0; for(int i = 1;i<=n;i++) cin>>a[i],s += a[i]; if(s % n != 0){ puts("-1"); continue; } int t = s / n; for(int i = 2;i<=n;i++){ if(a[i] % i){ ans.push_back({1,i,i - a[i] % i}); // 变为i的倍数 // printf("%lld %lld %lld\n",1,i,i - a[i] % i); a[i] += i - a[i] % i; // 变为i的倍数 } ans.push_back({i,1,a[i]/i}); // printf("%lld %lld %lld\n",i,1,a[i] / i); } for(int i = 2;i<=n;i++){ ans.push_back({1,i,t}); // 变为sum / n // printf("%lld %lld %lld\n",1,i,t); } cout<<ans.size()<<endl; for(auto x:ans){ cout<<x.a<<' '<<x.b<<' '<<x.c<<endl; } } return 0; }