【LGR-154-Div.4】洛谷入门赛 #15

\(A\) luoguB3813 [语言月赛 202308]四个人的排名加起来没有小粉兔高 AC

  • 水题。
    1. #include<bits/stdc++.h>
    2. using namespace std;
    3. #define ll long long
    4. #define sort stable_sort
    5. #define endl '\n'
    6. int main()
    7. {
    8. int a,b,c,d;
    9. cin>>a>>b>>c>>d;
    10. if(a+b+c+d<51)
    11. {
    12. cout<<"Rabbit wins";
    13. }
    14. else
    15. {
    16. cout<<"Rabbit lose";
    17. }
    18. return 0;
    19. }

\(B\) luoguB3814 [语言月赛 202308]小粉兔喜欢下象棋吗 AC

  • 时间复杂度 \(O(8^3)\) ,枚举即可。
    1. #include<bits/stdc++.h>
    2. using namespace std;
    3. #define ll long long
    4. #define sort stable_sort
    5. #define endl '\n'
    6. int dix[10]={-2,-2,-1,-1,1,1,2,2},diy[10]={1,-1,2,-2,2,-2,1,-1};
    7. int main()
    8. {
    9. int sx,sy,cx,cy,mx,my,i,j,k;
    10. cin>>sx>>sy>>cx>>cy>>mx>>my;
    11. for(i=0;i<=7;i++)
    12. {
    13. for(j=0;j<=7;j++)
    14. {
    15. for(k=0;k<=7;k++)
    16. {
    17. if(mx+dix[i]+dix[j]==sx&&my+diy[i]+diy[j]==sy&&mx+dix[i]+dix[k]==cx&&my+diy[i]+diy[k]==cy)
    18. {
    19. cout<<"Yes"<<endl;
    20. return 0;
    21. }
    22. }
    23. }
    24. }
    25. cout<<"No"<<endl;
    26. return 0;
    27. }

\(C\) luoguB3815 [语言月赛 202308]小粉兔的挂科与压力 AC

  • \(switch\) 大法好。
    1. #include<bits/stdc++.h>
    2. using namespace std;
    3. #define ll long long
    4. #define sort stable_sort
    5. #define endl '\n'
    6. int main()
    7. {
    8. int n,i,p,ans=0,sum=1+2+3+4+5+6;
    9. cin>>n;
    10. for(i=1;i<=n-1;i++)
    11. {
    12. cin>>p;
    13. switch(p)
    14. {
    15. case 1:
    16. ans+=sum-2-1;
    17. break;
    18. case 2:
    19. ans+=sum-1-2;
    20. break;
    21. case 3:
    22. ans+=sum-4-3;
    23. break;
    24. case 4:
    25. ans+=sum-3-4;
    26. break;
    27. case 5:
    28. ans+=sum-6-5;
    29. break;
    30. case 6:
    31. ans+=sum-5-6;
    32. break;
    33. }
    34. }
    35. cin>>p;
    36. switch(p)
    37. {
    38. case 1:
    39. ans+=sum-2;
    40. break;
    41. case 2:
    42. ans+=sum-1;
    43. break;
    44. case 3:
    45. ans+=sum-4;
    46. break;
    47. case 4:
    48. ans+=sum-3;
    49. break;
    50. case 5:
    51. ans+=sum-6;
    52. break;
    53. case 6:
    54. ans+=sum-5;
    55. break;
    56. }
    57. cout<<ans;
    58. return 0;
    59. }

\(D\) luoguB3816 [语言月赛 202308]小粉兔做麻辣兔头 AC

  • 水题。
    1. #include<bits/stdc++.h>
    2. using namespace std;
    3. #define ll long long
    4. #define sort stable_sort
    5. #define endl '\n'
    6. int main()
    7. {
    8. ll n,c,i,a,ans,maxx=0,k;
    9. cin>>n>>c;
    10. ans=n*c;
    11. k=0;
    12. for(i=1;i<=n;i++)
    13. {
    14. cin>>a;
    15. maxx=max(maxx,a);
    16. if(maxx+c*(n-i)<ans)
    17. {
    18. ans=maxx+c*(n-i);
    19. k=i;
    20. }
    21. }
    22. cout<<k<<" "<<ans;
    23. return 0;
    24. }

\(E\) luoguB3817 [语言月赛 202308]小粉兔还会忘记考试吗 AC

  • \(STL\) 大法好,练习使用 \(map\) 。
  • 没有注意到只要有成绩就不算缺考,调了 \(10min+\) 。
    1. #include<bits/stdc++.h>
    2. using namespace std;
    3. #define ll long long
    4. #define sort stable_sort
    5. #define endl '\n'
    6. ll e[50001];
    7. map<ll,ll>s;
    8. int main()
    9. {
    10. ll n,m,i,ans1=0,ans2=0,p,ls;
    11. cin>>n>>m;
    12. for(i=1;i<=n;i++)
    13. {
    14. cin>>e[i];
    15. }
    16. for(i=1;i<=m;i++)
    17. {
    18. cin>>p>>ls;
    19. s[p]=ls+1;
    20. }
    21. for(i=1;i<=n;i++)
    22. {
    23. if(s[e[i]]==0)
    24. {
    25. ans1++;
    26. }
    27. if(s[e[i]]-1<60)
    28. {
    29. ans2++;
    30. }
    31. }
    32. cout<<ans1<<endl;
    33. cout<<ans2<<endl;
    34. return 0;
    35. }

\(F\) luoguB3818 [语言月赛 202308]电脑中了满屏粉兔病毒

  • \(N^3\) 暴力枚举即可。
  1. ```cpp
  2. #include<bits/stdc++.h>
  3. using namespace std;
  4. #define ll long long
  5. #define sort stable_sort
  6. #define endl '\n'
  7. char c[501][501];
  8. int main()
  9. {
  10. int n,m,sum1,sum2,i,j,k,sum,flag,ans=0;;
  11. cin>>n>>m>>sum1>>sum2;
  12. for(i=1;i<=n;i++)
  13. {
  14. for(j=1;j<=m;j++)
  15. {
  16. cin>>c[i][j];
  17. }
  18. }
  19. for(i=1;i<=n;i++)
  20. {
  21. for(j=1;j<=m;j++)
  22. {
  23. if(c[i][j]=='F')
  24. {
  25. sum=flag=0;
  26. for(k=1;k<=i-1;k++)
  27. {
  28. if(c[k][j]=='M')
  29. {
  30. flag=1;
  31. break;
  32. }
  33. }
  34. if(flag==0)
  35. {
  36. sum++;
  37. }
  38. flag=0;
  39. for(k=1;k<=j-1;k++)
  40. {
  41. if(c[i][k]=='M')
  42. {
  43. flag=1;
  44. break;
  45. }
  46. }
  47. if(flag==0)
  48. {
  49. sum++;
  50. }
  51. flag=0;
  52. for(k=i+1;k<=n;k++)
  53. {
  54. if(c[k][j]=='M')
  55. {
  56. flag=1;
  57. break;
  58. }
  59. }
  60. if(flag==0)
  61. {
  62. sum++;
  63. }
  64. flag=0;
  65. for(k=j+1;k<=m;k++)
  66. {
  67. if(c[i][k]=='M')
  68. {
  69. flag=1;
  70. break;
  71. }
  72. }
  73. if(flag==0)
  74. {
  75. sum++;
  76. }
  77. if(sum>=3)
  78. {
  79. ans++;
  80. }
  81. }
  82. if(c[i][j]=='M')
  83. {
  84. sum=flag=0;
  85. for(k=1;k<=i-1;k++)
  86. {
  87. if(c[k][j]=='F')
  88. {
  89. flag=1;
  90. break;
  91. }
  92. }
  93. if(flag==0)
  94. {
  95. sum++;
  96. }
  97. flag=0;
  98. for(k=1;k<=j-1;k++)
  99. {
  100. if(c[i][k]=='F')
  101. {
  102. flag=1;
  103. break;
  104. }
  105. }
  106. if(flag==0)
  107. {
  108. sum++;
  109. }
  110. flag=0;
  111. for(k=i+1;k<=n;k++)
  112. {
  113. if(c[k][j]=='F')
  114. {
  115. flag=1;
  116. break;
  117. }
  118. }
  119. if(flag==0)
  120. {
  121. sum++;
  122. }
  123. flag=0;
  124. for(k=j+1;k<=m;k++)
  125. {
  126. if(c[i][k]=='F')
  127. {
  128. flag=1;
  129. break;
  130. }
  131. }
  132. if(flag==0)
  133. {
  134. sum++;
  135. }
  136. if(sum>=3)
  137. {
  138. ans++;
  139. }
  140. }
  141. }
  142. }
  143. cout<<ans<<endl;
  144. return 0;
  145. }
  146. ```

\(G\) luoguB3819 [语言月赛 202308]小粉兔处理题解审核志愿者轮换 AC

  • \(STL\) 大法好,练习使用 \(map\) 。
    1. #include<bits/stdc++.h>
    2. using namespace std;
    3. #define ll long long
    4. #define sort stable_sort
    5. #define endl '\n'
    6. string pd;
    7. map<string,bool>e;
    8. map<string,bool>::iterator it;
    9. int main()
    10. {
    11. int n,m,l,i;
    12. cin>>n>>m>>l;
    13. for(i=1;i<=n;i++)
    14. {
    15. cin>>pd;
    16. e[pd]=true;
    17. }
    18. for(i=1;i<=m;i++)
    19. {
    20. cin>>pd;
    21. e[pd]=false;
    22. }
    23. for(i=1;i<=l;i++)
    24. {
    25. cin>>pd;
    26. e[pd]=true;
    27. }
    28. for(it=e.begin();it!=e.end();it++)
    29. {
    30. if(it->second==true)
    31. {
    32. cout<<it->first<<endl;
    33. }
    34. }
    35. return 0;
    36. }

\(H\) luoguB3820 [语言月赛 202308]小粉兔的元素反应

  • 口胡:若在序列 \(a\) 中,存在一组 \(i,j\) 满足 \(a_i \times a_j \bmod 154=0\) 或 \(a_i \times a_j \bmod 147=0\) ,则一定有解。
  • 部分分( \(80pts\) ):暴力枚举,复杂度 \(O(Tn^2)\) ,加些特判。
  • 正解:
    • 一个简单性质: \((a_i \times a_j) \bmod p=((a_i \bmod p) \times (a_j \bmod p)) \bmod p\)
    • 当 \(k \le \sum\limits_{i=1}^{n} a_i\) ,输出 Yes
    • 用 \(map\) 或直接枚举 \(a_i \bmod p\) 的值即可,复杂度为 \(O(TK+ \sum n)\) ,其中 \(K=154^2+147^2+15=45340\) 。
      • 这数据有点弱啊,压着线过都正常,但是#8#9#10 300多ms过就不正常了。
      • 加强数据了@我。
    1. #include<bits/stdc++.h>
    2. using namespace std;
    3. #define ll long long
    4. #define sort stable_sort
    5. #define endl '\n'
    6. char k[1000001];
    7. ll a[1000001],sum1[155],sum2[148];
    8. bool check(ll sum[],ll mod)
    9. {
    10. for(ll i=0;i<=mod-1;i++)
    11. {
    12. if(sum[i]!=0)
    13. {
    14. for(ll j=0;j<=mod-1;j++)
    15. {
    16. if(!(i==j&&sum[i]==1))//特判
    17. {
    18. if(sum[j]!=0)
    19. {
    20. if((i*j)%mod==0)
    21. {
    22. return true;
    23. }
    24. }
    25. }
    26. }
    27. }
    28. }
    29. return false;
    30. }
    31. int main()
    32. {
    33. ll t,n,i,j,flag,sum,len,num;
    34. cin>>t;
    35. for(i=1;i<=t;i++)
    36. {
    37. cin>>n>>(k+1);
    38. memset(sum1,0,sizeof(sum1));
    39. memset(sum2,0,sizeof(sum2));
    40. flag=sum=num=0;
    41. for(j=1;j<=n;j++)
    42. {
    43. cin>>a[j];
    44. sum1[a[j]%154]++;
    45. sum2[a[j]%147]++;
    46. sum+=a[j];
    47. }
    48. len=strlen(k+1);
    49. for(j=1;j<=len;j++)
    50. {
    51. num=num*10+k[j]-'0';
    52. if(num>sum)
    53. {
    54. flag=1;
    55. break;
    56. }
    57. }
    58. if(flag==1)
    59. {
    60. if(check(sum1,154)==true||check(sum2,147)==true)
    61. {
    62. cout<<"Yes"<<endl;
    63. }
    64. else
    65. {
    66. cout<<"No"<<endl;
    67. }
    68. }
    69. else
    70. {
    71. cout<<"Yes"<<endl;
    72. }
    73. }
    74. return 0;
    75. }

\(I\) luoguB3821 [语言月赛 202308]小粉兔 Failed System Test WA

  • 问题1:卡 \(int\)

    • 赛场上把 \(int\) 的范围记成了 \(2e10\) ,挂了 \(750pts\) 。
  • 问题2:输出 ac
    • 把判断特征误以为是数据规模,临结束才发现。
    1. #include <iostream>
    2. using namespace std;
    3. int main() {
    4. int taskId;
    5. cin >> taskId;
    6. if (taskId == 1) {
    7. cout << "1000000000 999999999" <<endl;
    8. } else if (taskId == 2) {
    9. cout << "ac" << endl;
    10. } else { // 这个 else 不会被执行
    11. cout << "Stupid Fusu!" << endl;
    12. }
    13. }

总结

  • 本次开题顺序 \(ABCDEIGI\) ,要合理安排开题顺序。
  • 先通读题面,防止漏读信息( \(E,I\) 因此被卡)。
  • 记住各种类型所存储的范围
    • 一亿是 \(1e8\) 。
    • \(int\) : \((-2^{31}-1)\) ~ \((2^{31}-1)\)
      • \(-2147483647\) ~ \(2147483647\)
  • 不要在一道题上浪费太长时间( \(I\) 想了 \(1h\) ,导致 \(F,H\) 没写)。
  • \(hack\) 题目首先考虑卡掉存储类型(eg: \(I\) 的问题一)。

【LGR-154-Div.4】洛谷入门赛 #15的更多相关文章

  1. 【LGR-(-8)】洛谷入门赛 #5 题解

    比赛链接 9道题. 注:题目名称中链接为题目链接,题号中链接为比赛内链接 题目编号 洛谷题号 题目名称 题目难度 A P5713 [深基3.例5]洛谷团队系统 \(\color{red}{入门}\) ...

  2. war2 洛谷模拟赛day2 t3 状压

    (new )   war2 题解:总体数据而言,我们很容易想到着就是DP啊,我们DP数组,用状态压缩,代表有那些点已经被占领过了,代表上一次我占的是那个.对于每一次状态转移,若当前我们要占领的Port ...

  3. 洛谷试炼场 - 关卡1-5 - 简单字符串 - (Done)

    P1055 ISBN号码 #include<bits/stdc++.h> using namespace std; string s; ]={','X'}; int main() { ci ...

  4. 洛谷p3803 FFT入门

    洛谷p3803 FFT入门 ps:花了我一天的时间弄懂fft的原理,感觉fft的折半很神奇! 大致谈一谈FFT的基本原理: 对于两个多项式的卷积,可以O(n^2)求出来(妥妥的暴力) 显然一个多项式可 ...

  5. 洛谷 P5594 【XR-4】模拟赛

    洛谷 P5594 [XR-4]模拟赛 洛谷传送门 题目描述 X 校正在进行 CSP 前的校内集训. 一共有 nn 名 OIer 参与这次集训,教练为他们精心准备了 mm 套模拟赛题. 然而,每名 OI ...

  6. 草地排水 洛谷P2740 最大流 入门题目

    草地排水 洛谷P2740 最大流入门题目 题意 在农夫约翰的农场上,每逢下雨,贝茜最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间.因此,农夫约翰修建了一 ...

  7. 洛谷 P5089: CodeForces #500 (Div. 1) B / 1012B : Chemical table

    题目传送门:洛谷P5089. 题意简述: 一张 \(n \times m\) 的表格,有一些格子有标记,另外一些格子没有标记. 如果 \((r_1,c_1),(r_1,c_2),(r_2,c_1)\) ...

  8. 洛谷 P2015 二叉苹果树(codevs5565) 树形dp入门

    dp这一方面的题我都不是很会,所以来练(xue)习(xi),大概把这题弄懂了. 树形dp就是在原本线性上dp改成了在 '树' 这个数据结构上dp. 一般来说,树形dp利用dfs在回溯时进行更新,使用儿 ...

  9. 洛谷P1667/[10.22 模拟赛] 数列 (思维+模拟)

    洛谷P1667 数列 题目描述 给定一个长度是n的数列A,我们称一个数列是完美的,当且仅当对于其任意连续子序列的和都是正的.现在你有一个操作可以改变数列,选择一个区间[X,Y]满足\(A_X +A_{ ...

  10. 洛谷P1280 && caioj 1085 动态规划入门(非常规DP9:尼克的任务)

    这道题我一直按照往常的思路想 f[i]为前i个任务的最大空暇时间 然后想不出来怎么做-- 后来看了题解 发现这里设的状态是时间,不是任务 自己思维还是太局限了,题做得太少. 很多网上题解都反着做,那么 ...

随机推荐

  1. 如何将接口的返回值中所需信息提取出来作为其他接口的入参使用(postman与jmeter的使用)

    一.背景: 偶尔会用到一个场景,两个接口之前的调用有依赖关系,将其中一个的返回参数中的部分信息取出来作为入参在第二个接口中使用,代码内是比较好实现,只要定义一个变量,用于参数传递. 如果是测试过程中使 ...

  2. 用线性二次模型建模大型数据中心,基于 MPC 进行冷却控制

    目录 一个总述 reviews 0 abstract 1 intro 2 related work 3 DC cooling(问题定义) 4 MPC(method) 4.1 Model structu ...

  3. Blazor模式讲解

    Blazor的三种模式 Blazor Server: Blazor Server在 ASP.NET Core 应用中支持在服务器上托管 Razor 组件. 可通过 SignalR 连接处理 UI 更新 ...

  4. 基于python+django的求职招聘网站-网上招聘管理系统设计与实现

    该系统是基于python+django的求职招聘网站.网上招聘管理系统.网上人才招聘系统.毕业生求职招聘系统.大学生求职招聘系统.校园招聘系统.企业招聘系统.系统适合场景:大学生.课程作业.毕业设计. ...

  5. 海思Hi35xx 通过uboot查看flash指定地址的数据

    ​ 前言 在实际应用中有遇到过设备放置一段时间后设备不能启动的问题,uboot 完全没有响应,类似于flash中的数据被擦洗掉一样. 网上有介绍说是nandflash 不稳定,高温或是静电会导致nan ...

  6. [转帖]k8s(1.28.2)部署ingress-nginx-controller(1.9.0)

    1.部署ingress-nginx-controller 继在三台虚拟机部署k8s后,需要部署ingress-nginx-controller,才能使设置的ingress规则生效. 1.1下载yaml ...

  7. [转帖]Web技术(四):TLS 握手过程与性能优化(TLS 1.2与TLS 1.3对比)

    https://blog.csdn.net/m0_37621078/article/details/106126033?ops_request_misc=%257B%2522request%255Fi ...

  8. [转帖]ext4的fsync性能和nodelalloc参数的分析

    原文:http://blog.thinksrc.com/?p=189001 感叹归感叹,发泄完了还得继续过. 前几天忙的不可开交,周报上面竟然能列出11项,想想以前在T公司时候的清闲,现在的老板的真幸 ...

  9. [转帖]CTF -bugku-misc(持续更新直到全部刷完)

    CTF -bugku-misc(持续更新直到全部刷完) https://www.cnblogs.com/cat47/p/11432475.html 1.签到题 点开可见.(这题就不浪费键盘了) CTF ...

  10. 申威3231_SPECJVM2008的测试结果与信创服务器对比验证

    申威3231_SPECJVM2008的测试结果与信创服务器对比验证 背景 周六找同事将在公司里的机器进行了开机. 然后验证了config.guess和config.sub 的确是可以通过复制/usr ...