VP时间
A.
关键在于按c的按钮
c&1
Alice可以多按一次c按钮
也就是a多一个(a++)
之后比较a,b大小即可
!(c&1)
Alice Bob操作c按钮次数一样
1.ac
B.贪心
一开始会吃饼干
如果有卖饼的就吃
如果隔离一段时间到d没吃就吃(当时间快到的时候卖一次饼)
n是长度
枚举一遍卖饼的位置
不移除
吃饼量=((s[i]-s[i-1]-1)/d)求和
s[i]到s[i-1]之间的距离(s[i-1],s[i])不到s[i]因此要-1
枚举一遍卖饼的位置
还有特判(s[0]=1-d,s[m+1]=n+1),-d+1(到1就吃一口饼),n+1(到n可能会吃一口饼)
res-=(s[i]-s[i-1]-1)/d;
res-=(s[i+1]-s[i]-1)/d;
res+=(s[i+1]-s[i-1])/d;
res+=m-1;
计算出res
ans=min(ans,res)
if(ans==res)cnt++;
C.
gcd最大的数是n/2
gcd(a[i],a[i+1])
i,2*i放一起为最优解
i 枚举奇数
1.ac
题解
A.
// Problem: A. Buttons
// Contest: Codeforces - Codeforces Round 893 (Div. 2)
// URL: https://codeforces.com/contest/1858/problem/A
// Memory Limit: 256 MB
// Time Limit: 1000 ms
//
// Powered by CP Editor (https://cpeditor.org)
//へ /|
// /\7 ∠_/
// / │ / /
// │ Z _,< / /`ヽ
// │ ヽ / 〉
// Y ` / /
// イ● 、 ● ??〈 /
// () へ | \〈
// >ー 、_ ィ │ //
// / へ / ノ<| \\
// ヽ_ノ (_/ │//
// 7 |/
// >―r ̄ ̄`ー―_
#include <iostream>
#include <cstring>
#include <iomanip>
#include <ctime>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <stack>
#include <map>
#include <set>
#include <bitset>
#include <queue>
#define eps 1e-5
#define INF 1e9
using namespace std;
typedef long long ll;
const int N = 2e6 + 9;
int a[N];
void solve() {
int a,b,c;
cin>>a>>b>>c;
if(c&1){
a++;
if(a>b){
cout<<"First"<<'\n';
}else{
cout<<"Second"<<'\n';
}
}else{
if(a>b){
cout<<"First"<<'\n';
}else{
cout<<"Second"<<'\n';
}
}
}
int main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int q;
cin >> q;
while (q--) {
solve();
}
return 0;
}
B.
// Problem: B. The Walkway
// Contest: Codeforces - Codeforces Round 893 (Div. 2)
// URL: https://codeforces.com/contest/1858/problem/B
// Memory Limit: 256 MB
// Time Limit: 1000 ms
//
// Powered by CP Editor (https://cpeditor.org)
//へ /|
// /\7 ∠_/
// / │ / /
// │ Z _,< / /`ヽ
// │ ヽ / 〉
// Y ` / /
// イ● 、 ● ??〈 /
// () へ | \〈
// >ー 、_ ィ │ //
// / へ / ノ<| \\
// ヽ_ノ (_/ │//
// 7 |/
// >―r ̄ ̄`ー―_
#include <iostream>
#include <cstring>
#include <iomanip>
#include <ctime>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <stack>
#include <map>
#include <set>
#include <bitset>
#include <queue>
#define eps 1e-5
#define INF 1e9
using namespace std;
typedef long long ll;
const int N = 2e5 + 9;
int s[N];
void solve() {
int n,m,d;
cin>>n>>m>>d;
for(int i=1;i<=m;i++){
cin>>s[i];
}
s[0]=-d+1;
s[m+1]=n+1;
int sum=0;
for(int i=1;i<=m+1;i++){
sum+=(s[i]-s[i-1]-1)/d;
}
int ans=n+1;
int cnt=0;
for(int i=1;i<=m;i++){
int res=sum;
res-=(s[i]-s[i-1]-1)/d;
res-=(s[i+1]-s[i]-1)/d;
res+=(s[i+1]-s[i-1]-1)/d;
res+=m-1;
if(res<ans){
ans=res;
cnt=1;
}else if(res==ans){
cnt++;
}
}
cout<<ans<<" "<<cnt<<'\n';
}
int main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int q;
cin >> q;
while (q--) {
solve();
}
return 0;
}
C.
// Problem: C. Yet Another Permutation Problem
// Contest: Codeforces - Codeforces Round 893 (Div. 2)
// URL: https://codeforces.com/contest/1858/problem/C
// Memory Limit: 256 MB
// Time Limit: 2000 ms
//
// Powered by CP Editor (https://cpeditor.org)
//へ /|
// /\7 ∠_/
// / │ / /
// │ Z _,< / /`ヽ
// │ ヽ / 〉
// Y ` / /
// イ● 、 ● ??〈 /
// () へ | \〈
// >ー 、_ ィ │ //
// / へ / ノ<| \\
// ヽ_ノ (_/ │//
// 7 |/
// >―r ̄ ̄`ー―_
#include <iostream>
#include <cstring>
#include <iomanip>
#include <ctime>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <stack>
#include <map>
#include <set>
#include <bitset>
#include <queue>
#define eps 1e-5
#define INF 1e9
using namespace std;
typedef long long ll;
const int N = 2e6 + 9;
int a[N];
void solve() {
int n;
cin>>n;
vector<int> a;
for(int i=1;i<=n;i+=2){
for(int j=i;j<=n;j*=2){
a.push_back(j);
}
}
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
cout<<'\n';
}
int main() {
ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
int q;
cin >> q;
while (q--) {
solve();
}
return 0;
}