【CSP-J 2019 】复赛分析

前言(????)

总的来说,这次复赛感觉考的很不满意,至于原因,感慨万分!关键是:期中考试了!偏偏是这个时候!

- 由于我是一个初二的蒟蒻,所以考试前先定了一个目标:前两道题AC(可是现实与想象就是差INF),后两道题写个AC自动机或随机数什么的,不然就打暴力骗点分什么的。怀着这样美好的心情出发。
- 我自我感觉良好—— AK IOI

DAY -4

坐标:育才成功学校 教学楼七楼
比赛前的我们开始准备放松心态 :

DAY -2

坐标:育才成功学校 教学楼七楼
心里想:调整调整心态吧,什么都别干了,就当放了半天假。
事实上:卧槽——还有N道题没有做......
这几天,我们将这几年的初赛题都一本正经的刷了几遍(顺便将期中考试的作业都过了几遍)

DAY 1

坐标:??
今天考试了!

祝我:

  1. cpp
  2. while(1){
  3. rp+=inf;
  4. }

T1:数字游戏

这道题绝对是千万年以来最简单的题。
官方代码:

cpp

  1. #include <iostream>
  2. #include <cstdio>
  3. using namespace std;
  4.  
  5. int main() {
  6.  
  7. freopen("number.in", "r", stdin);
  8. freopen("number.out", "w", stdout);
  9. string s;
  10. cin >> s;
  11.  
  12. int ans = 0;
  13. for (int i = 0; i < 8; ++i)
  14. if (s[i] == '1')
  15. ans ++;
  16. cout << ans << endl;
  17. fclose(stdin);
  18. fclose(stdout);
  19. return 0;
  20. }

T2:公交换乘

花了一个多小时时间去调试,所以我的代码有点......还是看官方的吧:

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <vector>
  4. using namespace std;
  5. struct Node
  6. {
  7. long long type, price, t;
  8. } a[200000];
  9.  
  10. vector<Node> v;
  11.  
  12. int main()
  13. {
  14.  
  15. freopen("transfer.in", "r", stdin);
  16. freopen("transfer.in", "w", stdout);
  17.  
  18. int n;
  19.  
  20. cin >> n;
  21. for (int i = 1; i <= n; ++i)
  22. cin >> a[i].type >> a[i].price >> a[i].t;
  23.  
  24. long long sum = 0;
  25. for (int i = 1; i <= n; ++i)
  26. {
  27.  
  28. if (a[i].type == 0)
  29. {
  30. sum += a[i].price;
  31. v.push_back(a[i]);
  32. }
  33. else
  34. {
  35. bool flag = false;
  36. for (int j = 0; j < v.size(); ++j)
  37. {
  38.  
  39. if (a[i].t - v[j].t <= 45)
  40. {
  41. if (a[i].price <= v[j].price)
  42. {
  43. flag = true;
  44. v.erase(v.begin() + j);
  45. break;
  46. }
  47. }
  48. else
  49. {
  50. v.erase(v.begin() + j);
  51. j--;
  52. }
  53. }
  54. if (!flag)
  55. sum += a[i].price;
  56. }
  57. }
  58. cout << sum << endl;
  59.  
  60. fclose(stdin);
  61. fclose(stdout);
  62. return 0;
  63. }

  

T3:纪念品

背包问题。
官方代码:

cpp

  1. #include <iostream>
  2. #include <cstdio>
  3. #include <vector>
  4. using namespace std;
  5.  
  6. int t, n, m;
  7. int f[20000];
  8. int a[200][20000];
  9. int main()
  10. {
  11.  
  12. freopen("souvenir.in", "r", stdin);
  13. freopen("souvenir.out", "w", stdout);
  14.  
  15. cin >> t >> n >> m;
  16.  
  17. for (int i = 1; i <= t; ++i)
  18. for (int j = 1; j <= n; ++j)
  19. cin >> a[i][j];
  20.  
  21. for (int i = 2; i <= t; ++i) {
  22.  
  23. memset(f, 0, sizeof(f));
  24. for (int j = 1; j <= n; ++j) {
  25. for (int k = a[i - 1][j]; k <= m; k++) {
  26. f[k] = max(f[k], f[k - a[i - 1][j]] + a[i][j] - a[i - 1][j]);
  27. }
  28. }
  29. m += f[m];
  30. }
  31. cout << m << endl;
  32. fclose(stdin);
  33. fclose(stdout);
  34. return 0;
  35. }

T4:加工零件

图论,最短路问题。
官方代码:

  1. cpp
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. struct Edge
  5. {
  6. int u, v, next;
  7. } e[400000];
  8. int n, m, u, v, tot, query, f[200000], d[200000][2];
  9. bool used[200000];
  10. queue<int> q;
  11. void add(int u, int v)
  12. {
  13. tot++;
  14. e[tot].u = u;
  15. e[tot].v = v;
  16. e[tot].next = f[u];
  17. f[u] = tot;
  18. }
  19. int main()
  20. {
  21. freopen("work.in", "r", stdin);
  22. freopen("work.out", "w", stdout);
  23. cin >> n >> m >> query;
  24. for (int i = 1; i <= m; ++i)
  25. {
  26. cin >> u >> v;
  27. add(u, v);
  28. add(v, u);
  29. }
  30. memset(d, 0x3f, sizeof(d));
  31. memset(used, false, sizeof(used));
  32. d[1][0] = 0;
  33. used[1] = true;
  34. q.push(1);
  35. while (!q.empty())
  36. {
  37. int u = q.front();
  38. q.pop();
  39. for (int i = f[u]; i > 0; i = e[i].next)
  40. {
  41. int v = e[i].v;
  42. if (d[u][0] + 1 < d[v][1])
  43. {
  44. d[v][1] = d[u][0] + 1;
  45. if (!used[v])
  46. {
  47. used[v] = true;
  48. q.push(v);
  49. }
  50. }
  51. if (d[u][1] + 1 < d[v][0])
  52. {
  53. d[v][0] = d[u][1] + 1;
  54. if (!used[v])
  55. {
  56. used[v] = true;
  57. q.push(v);
  58. }
  59. }
  60. }
  61. used[u] = false;
  62. }
  63. for (int i = 1; i <= query; ++i)
  64. {
  65. int a, l;
  66. cin >> a >> l;
  67. if ((d[a][0] <= l && l % 2 == 0) || (d[a][1] <= l && l % 2 == 1))
  68. printf("Yes\n");
  69. else
  70. printf("No\n");
  71. }
  72. fclose(stdin);
  73. fclose(stdout);
  74. return 0;
  75. }

结果,你知道吗,心态爆炸的我在赛场上......

总结&感想

这次参加联赛,看了下往年的题目和分数线,发现只要该拿的分不挂就可以拿到。可是今年在考场上的感觉题目比往年似乎更难(一下有两道黑题),暴力都没能打出来。部分分好像比往年更多,拿到150+还是很轻松的。

CSP-J 2019复赛分析的更多相关文章

  1. [计蒜之道2019 复赛 A]外教 Michale 变身大熊猫

    [计蒜之道2019 复赛 A]外教 Michale 变身大熊猫 Online Judge:2019计蒜之道 复赛 A Label:LIS+线段树.树状数组+快速幂(模逆元) 题目描述 题解: pre. ...

  2. 上午小测3 T1 括号序列 && luogu P5658 [CSP/S 2019 D1T2] 括号树 题解

    前 言: 一直很想写这道括号树..毕竟是在去年折磨了我4个小时的题.... 上午小测3 T1 括号序列 前言: 原来这题是个dp啊...这几天出了好几道dp,我都没看出来,我竟然折磨菜. 考试的时候先 ...

  3. CSP J/S 初赛总结

    CSP J/S 初赛总结 2021/9/19 19:29 用官方答案估计 J 涂卡的时候唯一的一支 2B 铅笔坏了,只能用笔芯一个个涂 选择 \(-6\ pts\) 判断 \(-3\ pts\) 回答 ...

  4. 【游记】CSP J/S 2019 游记

    J 组 \(2:30\)开始, \(2:13\)还在酒店的我看了看手表...飞奔考场. T1 数字游戏 秒切. 下午某中学某大佬说可用线性基(%) T2 公交换乘 用单调队列思想,秒切. T3 纪念品 ...

  5. CSP J/S 2019受虐记

    一枚蒟蒻的游记~ 提高组DAY1 不是说每场考试都有一道签到题吗 那我tm读了三遍题硬是没找到一道水题是怎么回事(是我太弱了吗) 没办法,硬着头皮做T1 暴力写法...期望得分30pts 于是...在 ...

  6. J.U.C--locks--AQS分析

    看一下AbstractQueuedSynchronizer(下面简称AQS)的子类就行知道,J.U.C中宣传的封装良好的同步工具类Semaphore.CountDownLatch.ReentrantL ...

  7. [De1CTF 2019]Giftbox 分析&&TPOP学习

    [De1CTF 2019]Giftbox 刚进来我以为是直接给了shell,恐怖如斯. 随便扔了个命令,之后就没然后了,hhh,截包发现可能存在sql注入. 然后我就不会了... what i lea ...

  8. 关于Mysql数据库longblob格式数据的插入com.mysql.jdbc.PreparedStatement.setBinaryStream(ILjava/io/InputStream;J)V问题分析

    当数据库字段为blob类型时 ,我们如果使用PreparedStatement中的setBinaryStream(int,InputStream,int)方法需要注意 在向blob字段类型中插入数据时 ...

  9. CSP-S 2019 考试分析

    Day 0 考试前几天心情比较浮躁,一些题目要调个两三天,还有许多模板题打不对,看来注定凉凉: 坐大巴去日照的路上还打算复习算法来着,没想到我晕车这么厉害,几乎一睁眼就晕,想安安静静的睡会,那个电视播 ...

随机推荐

  1. 纯CSS3图片反转

    一些简单实用的小技巧,CSS3对图片进行翻转,显示另一面的文字,或者图片效果,那么具体怎样去做呢?一起来看看吧. 在CSS3中,可以使用transform-style: preserve-3d进行3d ...

  2. Unity插件介绍——Odin

    今天把玩了一款最近的热门插件——“Odin - Inspector and Serializer”,其功能强大到让人无语,简直是开发利器,屠龙宝刀!它的功能是扩展Inspector显示,它重写和增加了 ...

  3. 漏洞重温之sql注入(七)

    漏洞重温之sql注入(七) sqli-labs通关之旅 Less-31 首先,进入31关,我们先添加上id参数. 然后,我们查看源码. 我们门可以看到,index页面源码其实很简单,网页也没有对我们的 ...

  4. tcpdump 命令格式

    tcpdump 命令格式 tcpdump [选项] [表达式 1. 选项 常用选项: -i : 网卡名: 指定网卡,默认抓取系统第一个网卡 -n : 对地址以数字方式显示 -nn :对地址端口以数字方 ...

  5. Redux异步解决方案之Redux-Thunk原理及源码解析

    前段时间,我们写了一篇Redux源码分析的文章,也分析了跟React连接的库React-Redux的源码实现.但是在Redux的生态中还有一个很重要的部分没有涉及到,那就是Redux的异步解决方案.本 ...

  6. 使用Json-lib将对象和Json互转

    工程下载地址: https://files.cnblogs.com/files/xiandedanteng/jsonSample20200308.rar Depenency: <!-- 使用js ...

  7. 解决 Mac 上 Docker 无法直接 ping 通的问题

    解决 Mac 上 Docker 无法直接 ping 通的问题 原文连接 一.背景 Mac os Mojave 10.14.3 Docker Desktop community 2.3.0.4 二.问题 ...

  8. .NET Core 下使用 Apollo 配置中心

    Apollo(阿波罗)是携程框架部门研发的分布式配置中心,能够集中化管理应用不同环境.不同集群的配置,配置修改后能够实时推送到应用端,并且具备规范的权限.流程治理等特性,适用于微服务配置管理场景.服务 ...

  9. 【新阁教育】基于Log4Net实现日志信息双向存储(含源码)

    1.引言 在上位机开发中,日志记录是必不可少的,我们可以通过日志记录做日志分析及错误追踪.初学者会采用txt文本写入来实现日志保存,但是文本写入不是线程安全,当存在多个线程同时写入日志时,就会出现一些 ...

  10. White Bird(AOJ 2308)

    原题如下: Angry Birds is a mobile game of a big craze all over the world. You were convinced that it was ...