• 两日总结十


    比赛总结:

    Educational Codeforces Round 133 (Rated for Div. 2)

    D题实在是有些可惜,当时都已经想到了,就是时间卡了一点点,不用队列就直接过了,直接求出K的最大值632,然后就是直接暴力就好了。。。一开始想的有点复杂。

    1. #include
    2. #define OST ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    3. #define endl "\n"
    4. #define ll long long
    5. #define pair pair
    6. using namespace std;
    7. const int mod = 998244353;
    8. int vis[200005];
    9. void solve() {
    10. int n, k;
    11. cin >> n >> k;
    12. vector f(n + 1, 0), ff(n + 1, 0), fff(n + 1, 0);
    13. queue q;
    14. for (int i = k; i <= n; i += k) {
    15. q.push({i, k + 1});
    16. f[i] = 1;
    17. }
    18. while (!q.empty()) {
    19. auto x = q.front();
    20. q.pop();
    21. if (x.second >= 633) break;
    22. if (x.second > k) {
    23. fff = ff;
    24. ff = f;
    25. k = x.second;
    26. for (int i = 1; i <= n; i++) vis[i] = 0;
    27. }
    28. for (int i = x.first + x.second; i <= n; i += x.second) {
    29. f[i] += (ff[x.first] - fff[x.first] + mod) % mod;
    30. f[i] %= mod;
    31. if (!vis[i]) q.push({i, x.second + 1}), vis[i] = 1;
    32. }
    33. }
    34. for (int i = 1; i <= n; i++) { cout << f[i] << " "; }
    35. cout << endl;
    36. }
    37. signed main() {
    38. int T = 1;
    39. // cin >> T;
    40. OST;
    41. while (T--) { solve(); }
    42. return 0;
    43. }

     后面改的代码AC:

    1. #include
    2. #define OST ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    3. #define endl "\n"
    4. #define ll long long
    5. #define pair pair
    6. using namespace std;
    7. const int mod = 998244353;
    8. void solve() {
    9. int n, k;
    10. cin >> n >> k;
    11. vector f(n + 1, 0), ff(n + 1, 0), ans(n + 1, 0);
    12. f[0] = 1;
    13. ll sum = 0;
    14. for (int step = 0; step < 633; step++) {
    15. sum += step;
    16. if (sum > n) break;
    17. for (int j = 0; j + k + step <= n; j++) { ff[j + k + step] = f[j] + ff[j], ff[j] %= mod; }
    18. for (int j = 0; j <= n; j++) f[j] = ff[j], ff[j] = 0, ans[j] += f[j], ans[j] %= mod;
    19. }
    20. for (int i = 1; i <= n; i++) cout << ans[i] << endl;
    21. cout << endl;
    22. }
    23. signed main() {
    24. int T = 1;
    25. // cin >> T;
    26. OST;
    27. while (T--) { solve(); }
    28. return 0;
    29. }

    真的难受!!!

    然后就是那个C题:想到很简单主要是划分值比较复杂,和容易错,而且在那个位置划分也要考虑,是真的难写。。。。

    1. #include
    2. #define OST ios::sync_with_stdio(false), cin.tie(0), cout.tie(0);
    3. #define endl "\n"
    4. using namespace std;
    5. #define ll long long
    6. const int N = 2e5 + 5;
    7. const ll inf = 0x3f3f3f3f3f3f3f3f;
    8. ll t[N][2], f[N][2], houjia[N][2], houjian[N][2];
    9. void solve() {
    10. int n;
    11. cin >> n;
    12. for (int i = 0; i <= 1; i++)
    13. for (int j = 0; j < n; j++) cin >> t[j][i], t[j][i]++;
    14. t[0][0]--;
    15. for (int i = 0; i < 2; i++) {
    16. houjia[n][i] = -inf;
    17. houjian[n][i] = -inf;
    18. for (int j = n - 1; j >= 0; j--) {
    19. houjia[j][i] = max(houjia[j + 1][i] + 1, t[j][i]);
    20. houjian[j][i] = max(houjian[j + 1][i] - 1, t[j][i]);
    21. }
    22. }
    23. ll step = 0, res = inf, ans = inf, ma = 0, flag = 0;
    24. for (int i = 0; i < n; i++) {
    25. ma = max(t[i][flag] - step, ma);
    26. res = max({ma, houjian[i][flag] - step, houjia[i][flag ^ 1] - (step + 2 * (n - i - 1) + 1)});
    27. ans = min(res, ans);
    28. // cout << houjian[flag][i] - step << "--" << step << endl;
    29. step++;
    30. flag ^= 1;
    31. ma = max(t[i][flag] - step, ma);
    32. res = max({ma, houjian[i][flag] - step, houjia[i + 1][flag ^ 1] - (step + 2 * (n - i - 1))});
    33. ans = min(ans, res);
    34. step++;
    35. }
    36. cout << 2 * n - 1 + max(0ll, ans) << endl;
    37. }
    38. signed main() {
    39. int T = 1;
    40. cin >> T;
    41. while (T--) { solve(); }
    42. return 0;
    43. }

    航电杯6

     其他的1600CF练习题目:

     

  • 相关阅读:
    Sheet保存到本地 dataList前8行不读取
    java微博 10 request and response
    从源码深入理解读写锁(golang-RWMutex)
    一个web请求在springboot经历了什么
    数据结构_关键路径(C语言)
    日志11.7学习Http请求响应协议及语法、编写接口测试
    Java:如何去优雅地优化接口
    如何从戴尔笔记本电脑硬盘恢复数据
    React隐藏显示元素
    小马识途谈百科词条创建如何顺利通过审核?
  • 原文地址:https://blog.csdn.net/YSJ_1224/article/details/126185764