3 条题解
-
0
【2020年省赛B组】试题C: 蛇形填数
题解
规律题。
定义,表示当前位置所在行,c表示当前位置所在列,ans 记录当前位置的数值。 那么下一个位置将会有以下六种情况:
- ,c为奇数:那么下一步将会到达的位置为()。
- ,c为偶数:那么下一步将会到达的位置为()。
- ,r为偶数,那么下一步将会到达的位置为()。
- ,r为奇数且,那么下一步将会到达的位置为()。
- ,,为奇数,那么下一步将会到达的位置为()。
- ,,为偶数,那么下一步将会到达的位置为()。
按照这 6 种情况模拟,每走一步 ans 就加 1,直到 r = 20,c= 20 时结束模拟输出 ans。
最后的答案为
761
。
提交代码
#include<bits/stdc++.h> using namespace std; signed main() { int r = 1 , c = 1 , ans = 1; while(r != 20 || c != 20){ if(r == 1){ if(c & 1) c ++ ; else r ++ , c --; } else if(c == 1){ if(r % 2 == 0) r ++; else r -- , c ++; } else if((r + c) % 2) r ++ , c -- ; else r -- , c ++ ; ans ++ ; } cout << ans << '\n'; return 0; }
信息
- ID
- 998
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 3
- 标签
- 递交数
- 85
- 已通过
- 40
- 上传者