- 先判断字符长度
- 相等的字符长度判断填满0后判断字典序
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimization("unroll-loops")
#include
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int mod = 1e9+7;
const int maxn = 2e5+10;
ll a[maxn];
ll b[maxn];
int main(void){
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
#endif
int t;
cin >> t;
while(t--){
string x1;
int p1;
string x2;
int p2;
cin >> x1 >> p1;
cin >> x2 >> p2;
int len1 = x1.size();
int len2 = x2.size();
if(len1+p1 > len2+p2) cout<<">"< x2) cout<<">"<x2) cout<<">"<x2) cout<<">"<
B. Absent Remainder
思路
a
%
b
<
b
a%b < b
a%b
AC代码
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimization("unroll-loops")
#include
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int mod = 1e9+7;
const int maxn = 2e5+10;
ll a[maxn];
ll b[maxn];
int main(void){
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
#endif
int t;
cin >> t;
while(t--){
int n;
cin >> n;
for(int i = 1; i <= n; ++i) cin >> a[i];
sort(a+1,a+1+n);
for(int i = 1; i <= n/2; ++i){
cout<
C. Poisoned Dagger
思路
二分K即可。
AC代码
#pragma GCC optimize("Ofast")
#pragma GCC target("avx,avx2,fma")
#pragma GCC optimization("unroll-loops")
#include
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int mod = 1e9+7;
const int maxn = 2e5+10;
ll a[maxn];
ll b[maxn];
ll n,h;
ll check(ll mid){
ll sum = 0;
for(int i = 1; i <= n-1; ++i) sum += min(mid,a[i+1]-a[i]);
sum += mid;
return sum;
}
int main(void){
#ifndef ONLINE_JUDGE
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
#endif
int t;
cin >> t;
while(t--){
cin >> n >> h;
for(int i = 1; i <= n; ++i) cin >> a[i];
ll l = 1;
ll r = h;
while(l < r){
ll mid = (l+r) >> 1;
if(check(mid) < h) l = mid+1;
else r = mid;
}
cout<



