#include<bits/stdc++.h> #define int long long #define endl '\n' using namespace std; signed main(){ std::ios::sync_with_stdio(false);cin.tie(0); int t;cin >> t; while(t--){ int n;cin >> n; int ans = 0, res; for (int i = 2; i <= n;i++){ int mn = 0, cnt = 1; while(cnt*i<=n) mn += cnt * i, cnt++; //cout << i << ' ' << mn << endl; if(mn>ans) ans = mn, res = i; } cout << res << endl; } return 0; }
#include<bits/stdc++.h> #define int long long #define endl '\n' using namespace std; int a[200010], pre[200010]; signed main(){ std::ios::sync_with_stdio(false);cin.tie(0); int t;cin >> t; while(t--){ int n, ans = 0; cin >> n; for (int i = 1; i <= n;i++) cin >> a[i]; int mn = a[1]; pre[1] = a[1]; if (a[1] == 0) ans++; for (int i = 2; i <= n;i++){ mn = max(mn, a[i]); pre[i] = pre[i - 1] + a[i]; if(pre[i]==2*mn) ans++; } cout << ans << endl; } return 0; }
#include<bits/stdc++.h> #define int long long #define endl '\n' using namespace std; typedef pair<int,int>pii; signed main(){ std::ios::sync_with_stdio(false);cin.tie(0); int t;cin >> t; while(t--){ int x, y, z, k;cin >> x >> y >> z >> k; int ans = 0; for (int i = 1; i <= x;i++) // 枚举长度 for (int j = 1; j <= y;j++){ //枚举宽度 if(i*j<=k&&k%(i*j)==0){ int e = k / (i * j); //e显然为高度 if(e>z)continue; int cntx = x - i + 1, cnty = y - j + 1, cntz = z - e + 1; ans = max(ans, cntx * cnty * cntz); } } cout << ans << endl; } return 0; }
#include<bits/stdc++.h> #define int long long #define endl '\n' #define inf 1e12 using namespace std; struct node{ int a, c; bool operator<(const node ss)const{ return c < ss.c; } } s[200010],b[200010]; signed main(){ std::ios::sync_with_stdio(false);cin.tie(0); int t; cin >> t; while(t--){ int h, n, pre = 0; cin >> h >> n; for (int i = 1; i <= n; i++) cin >> s[i].a, pre += s[i].a; for (int i = 1; i <= n; i++) cin >> s[i].c; h -= pre; if(h<=0){ //对第一回合进行特判 cout << "1" << endl; continue; } sort(s + 1, s + n + 1); //b数组表示同一冷却时间的伤害总和 b[1].a = s[1].a, b[1].c = s[1].c; int cnt = 1; for (int i = 2; i <= n;i++) if(s[i].c!=s[i-1].c){ cnt++; b[cnt].a = s[i].a; b[cnt].c = s[i].c; }else b[cnt].a += s[i].a; /*for (int i = 1; i <= n; i++) cout << s[i].c << ' ' << s[i].a << endl; for (int i = 1; i <= cnt;i++) cout << b[i].c << ' ' << b[i].a << endl;*/ int l = 1, r = inf, ans; auto check = [&](int x) -> bool { int res = 0; for (int i = 1; i <= cnt;i++) { int temp = x / b[i].c; res += temp * b[i].a; if(res>=h) return 1; } return 0; }; while(l<=r){ int mid = l + r >> 1; if(check(mid)) r = mid - 1, ans = mid; else l = mid + 1; } cout << ans + 1 << endl; } return 0; }
#include<bits/stdc++.h> #define int long long #define endl '\n' using namespace std; const int p = 1e9 + 7; int power_mod(int a, int b, int mod){ //快速幂取模 int res = 1; a = a % mod; while (b){ if (b & 1) res = (res * a) % mod; b /= 2; a = (a * a) % mod; } return res; } signed main(){ std::ios::sync_with_stdio(false);cin.tie(0); int t;cin >> t; while(t--){ int l, r, k;cin >> l >> r >> k; if(k>=10){ cout << 0 << endl; continue; } int m = 9 / k; int q = m + 1; int pow1 = power_mod(q, l, p), pow2 = power_mod(q, r, p); //cout << pow2 << endl; int ans = (pow2 - pow1 + p) % p; //减法需要再加一个模数防止负数形式 cout << ans << endl; } return 0; }