Codeforces Round 996 (div 2) / 2055
A. Two Frogs
难度(个人感觉)★☆☆☆☆
思考:
先观察终止状态。要么左边的人面临选择,两人在最左边两个格子;要么右边的人面临选择,两人在最右边两个格子。
对于一种初始状态,至多只能到达其中的一种终止状态,这是因为
这个值始终不变。而两种终止状态的这个值是不同的,由于最终距离为1,因此若最终值为 0,那么 Bob 失败,否则最终值为 1, Alice 失败。
因此另一个人不可能输,而他可以选择往对方的方向走,使得不会出现平局。
Code:
void get(){
if(abs(a - b) % 2 == 0){
win = 1;
} else{
win = 0;
}
}
B. Crafting
难度(个人感觉)☆☆☆☆☆
思考:
注意到最多只能存在一个
code:
int cnt = 0, val = 0;
for(int i = 0; i < N; i++){
if(a[i] < b[i]){
cnt++;
val = b[i] - a[i];
}
}
if(cnt > 1){
ok = 0;
return;
} else if(cnt == 0){
ok = 1;
return;
}
ok = 1;
for(int i = 0; i < N; i++){
if(a[i] >= b[i] && a[i] - b[i] < val) ok = 0;
}
C. The Trail
难度(个人感觉)★★☆☆☆
思考:
首先,
限制有
做法:
若从格子
若从格子
例子:
3 3
DRRD
0 2 3
0 0 0
3 1 0
第一个字符是 D,因此我们赋值格子 (0, 0) 为第一行和的相反数,即 -5,之后第一行没有格子了
第二个字符是 R,因此我们赋值格子 (1, 0) 为第一列和的相反数 2(注意(0,0)已经变成 -5)
第三个字符是 R,因此我们赋值格子 (1, 1) 为第二列和的相反数 -3
第四个字符是 D,因此我们赋值格子 (1, 2) 为第二行和的相反数 1
而最后将格子 (2, 2) 变成 -4,这会使得最后一行,最后一列的和同时变成 0
Code:
void get(){
memset(col, 0, sizeof(col));
memset(row, 0, sizeof(row));
for(int i = 1; i <= N; i++){
for(int j = 1; j <= M; j++){
col[j] += a[i][j], row[i] += a[i][j];
}
}
int x = 1, y = 1;
for(char c : path){
if(c == 'R'){
a[x][y] = -col[y];
col[y] += a[x][y], row[x] += a[x][y];
y++;
} else{
a[x][y] = -row[x];
col[y] += a[x][y], row[x] += a[x][y];
x++;
}
}
a[x][y] = -row[x];
}
//注意 所有数组得开 longlong
D. Scarecrow
难度(个人感觉)★★★☆☆
思考:
首先任意时刻,乌鸦左边的稻草人,只有最靠近的那个是有用的,显然它们的距离是
因此,对于乌鸦第一次超过第
-
显然对应同样的
,时间 越小越好,时间大的作用是让右边的稻草人移动,那么我们等待一些时间就行。 -
进一步的,对于同样的
, 越大越好,因为我们之后可以执行一样的操作,乌鸦还是能到终点的。
万事俱备,贪心即可。假设乌鸦位置
对于其中一个位置
对于
整理一下,如果区间包含
如果取的数
Code:
void input(){
a[i] *= 2;//输出时间两倍,相当于距离全部变成两倍
}
void get(){
int p = 0;
t = a[0]; a[0] = 0;
for(int i = 0; i < N - 1; i++){
if(a[i + 1] - a[i] < k){
if(a[i + 1] + t >= a[i] + k){
a[i + 1] = a[i] + k;
} else{
a[i + 1] += t;
}
} else{
if(a[i + 1] - t <= a[i] + k){
a[i + 1] = a[i] + k;
} else{
int dt = ((a[i + 1] - t) - (a[i] + k)) / 2;
t += dt;
a[i + 1] = a[i] + dt + k;
}
}
}
if(a[N - 1] + k < L){
t += L - (a[N - 1] + k);
}
}
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 清华大学推出第四讲使用 DeepSeek + DeepResearch 让科研像聊天一样简单!
· 推荐几款开源且免费的 .NET MAUI 组件库
· 实操Deepseek接入个人知识库
· 易语言 —— 开山篇
· Trae初体验