(交互题真神奇,,,我自己瞎写了一发目测样例都没过去就AC了。。。)

(只出了两题的竟然没掉下蓝名真是可怕)

A:我的代码太不美观了,放个同学的(因为我是c++63分的蒟蒻所以根本不知道那些函数怎么用只能手写被hack)

这个题本身不难,坑点太多了,很囍的是我在2:13分的时候被hack了,,GG

  

  1. #include<cstdio>
  2. #include<iostream>
  3. #include<cstring>
  4. #include<cstdlib>
  5. #include<climits>
  6. #include<vector>
  7. #include<set>
  8. #include<cmath>
  9. #include<queue>
  10. #include<algorithm>
  11. using namespace std;
  12. int n,m;
  13. signed main() {
  14. cin>>n>>m;
  15. if (n > m + ) return puts("NO"), ;
  16. std::string s, t;
  17. std::cin >> s >> t;
  18. int star = ;
  19. for (auto i : s) if (i == '*') star = ;
  20. if (!star && s != t) return puts("NO");
  21. std::string pre = s.substr(, s.find('*')), suf = s.substr(s.find('*') + );
  22. int pres = pre.size(), sufs = suf.size();
  23. if (t.substr(, pres) == pre && t.substr(m - sufs) == suf) puts("YES");
  24. else puts("NO");
  25. }

B:自认非常优雅

  

  1. #include <bits/stdc++.h>
  2. typedef long long ll;
  3. using namespace std;
  4. ll n,k;
  5. int main(){
  6. scanf("%lld%lld",&n,&k);
  7. ll ans = ;
  8. if(k>n){
  9. ll tmp = k-n;
  10. ans = (n-tmp+)/;
  11. } else{
  12. ll tmp = k-;
  13. ans = (tmp-+)/;
  14. }
  15. ans =ans>?ans:;
  16. printf("%lld\n",ans);
  17. }

C:

  太困了又刚补了几话狐妖又吸了冰毒 喝了冷藏的维他柠檬茶 导致一开始的思路是错的,,,还wa了两发。。。其实是个大水题

  

  1. #include <bits/stdc++.h>
  2. typedef long long ll;
  3. using namespace std;
  4. int n,k;
  5. char s[];
  6. int main() {
  7. scanf("%d%d", &n, &k);
  8. scanf("%s", s + );
  9. k/=;
  10. int cnt = ,cnt2=;
  11. for(int i=;i<=n;i++){
  12. if(s[i]=='(')
  13. cnt++;
  14. else
  15. cnt2++;
  16. printf("%c",s[i]);
  17. if(cnt==k)
  18. break;
  19. }
  20. cnt2 = cnt-cnt2;
  21. while (cnt2--){
  22. printf(")");
  23. }
  24. }

D:旁边哥们吐槽没读懂题,,其实我也没读懂,我是交了两发wa了之后才勉强猜对的题意,GG

  题意:我语文不好啊

  给你n个数,q次操作,每次操作按照从1到q的顺序 对 任意区间赋值成 那个数,第一次赋值1,第二次赋值2, n个数中为0的数可以自由变成任意数,其他数不能改变, 问 q次操作后能否得到 给定 序列,并输出序列。 自己结合样例好好读读吧,,真的挺难懂的。。

  想了很多骚操作还是直接线段树好。。

  我觉着只要做了这个题代码是非常好懂的,我就不细说了

  

  1. #include <bits/stdc++.h>
  2.  
  3. typedef long long ll;
  4. using namespace std;
  5. const int N = 2e5 + ;
  6. int n, q;
  7. int a[N], vis[N],l[N],r[N],flag[N];
  8. int minn[*N];
  9.  
  10. void build(int k, int l, int r) {
  11. if (l == r) {
  12. minn[k] = a[l];
  13. return;
  14. }
  15. int mid = (l + r) >> ;
  16. build(k << , l, mid);
  17. build(k << | , mid + , r);
  18. minn[k] = min(minn[k*],minn[k*+]);
  19. }
  20.  
  21. void update(int k, int l, int r) {
  22.  
  23. }
  24.  
  25. int query(int k, int lef, int rig, int l, int r) {
  26. if (l <= lef && r >= rig)
  27. return minn[k];
  28. int mid = (lef + rig) / ;
  29. int ans = 1e9;
  30. if (l <= mid)
  31. ans = min(ans, query(k * , lef, mid, l, r));
  32. if (r > mid)
  33. ans = min(ans, query(k << | , mid + , rig, l, r));
  34. return ans;
  35. }
  36.  
  37. int main() {
  38. scanf("%d%d", &n, &q);
  39. for (int i = ; i <= n; i++)
  40. scanf("%d", &a[i]);
  41. for (int i = ; i <= n; i++) {
  42. int j = i + ;
  43. while (j <= n && (a[j] == a[i] || a[j] == )) {
  44. if (a[j] == ) {
  45. a[j] = a[i];
  46. flag[j]=;
  47. }
  48. j++;
  49. }
  50. vis[a[i]] = ;
  51. i = j - ;
  52. }
  53. int temp = ;
  54. if(a[]!=&&!vis[q]){
  55. for(int i=;i<=n;i++){
  56. if(flag[i]){
  57. a[i]=q;
  58. vis[q]=;
  59. break;
  60. }
  61. }
  62. if(!vis[q]) {
  63. printf("NO\n");
  64. return ;
  65. }
  66. }
  67. if (a[] == ) {
  68. if (!vis[q]) {
  69. temp = q;
  70. } else {
  71. for (int i = ; i <= n; i++) {
  72. if (a[i] != ) {
  73. temp = a[i];
  74. break;
  75. }
  76. }
  77. }
  78. for (int i = ; i <= n; i++) {
  79. if (a[i] == )
  80. a[i] = temp;
  81. }
  82. }
  83. for(int i=;i<=n;i++){
  84. if(l[a[i]]==)
  85. l[a[i]]=i;
  86. r[a[i]]=i;
  87. }
  88. build(,,n);
  89. for(int i=;i<=q;i++){
  90. if(l[i]==)
  91. continue;
  92. if(query(,,n,l[i],r[i])<i){
  93. printf("NO\n");
  94. return ;
  95. }
  96. }
  97. printf("YES\n");
  98. for(int i=;i<=n;i++){
  99. printf("%d ",a[i]);
  100. }
  101. }

E : 第一次做交互题,,瞎写一发入魂,,(当然不是昨晚上。。。)

  感觉就是个贪心啊,,我也不知道为啥我这么做就是对的

  

  1. #include <cstdio>
  2. #include <iostream>
  3. #include <cstring>
  4. #include <algorithm>
  5.  
  6. using namespace std;
  7. int n;
  8.  
  9. bool ask(int n,int m,int x,int y){
  10. cout<<"? "<<n<<" "<<m<<" "<<x<<" "<<y<<endl;
  11. string s;
  12. cin>>s;
  13. return s[]=='Y';
  14. }
  15. int main(){
  16. string ans1="";
  17. string ans2="";
  18. scanf("%d",&n);
  19. int i=,j=;
  20. int cnt =;
  21. while (i<=n&&j<=n&&++cnt<=(n-)){
  22. if(ask(i,j+,n,n)){
  23. j++;
  24. ans1+="R";
  25. } else{
  26. i++;
  27. ans1+="D";
  28. }
  29. }
  30. i=n;j=n;cnt=;
  31. while (i>=&&j>=&&++cnt<=n-){
  32. if(ask(,,i-,j)){
  33. i--;
  34. ans2+="D";
  35. } else{
  36. j--;
  37. ans2+="R";
  38. }
  39. }
  40. reverse(ans2.begin(),ans2.end());
  41. printf("! ");
  42. cout<<ans1<<ans2;
  43. }

讲道理这套题要是放到我状态很好的时候我真有可能5题。。。当然很好这种东西一般不存在。。

我昨晚就出了BC两道题。。。惊了。。。

有个可怜的计科老兄被查重误判skip了。。。我也是第一次听说这种操作。。。

两题竟然还是蓝名,惊了。。。

今中午要好好睡午觉!!!md4点睡的八点多就起来来实验室补题结果没开门。。。(笔记本被我折磨了5个多小时gg了,,没带电源回去)

今晚edu可别再掉了,,,根据我的经验我现在已经达到极小点要开始反弹上紫了(雾

扩了一波学长的好友现在有将近十个好友注册了很开森QwQ

  

Codeforces Round 504的更多相关文章

  1. Codeforces Round #504 E. Down or Right

    Codeforces Round #504 E. Down or Right 题目描述:交互题. 有一个\(n \times n\)的方阵,有一些格子是障碍,从\((1, 1)\)出发,只能向右向下走 ...

  2. Codeforces Round #504 D. Array Restoration

    Codeforces Round #504 D. Array Restoration 题目描述:有一个长度为\(n\)的序列\(a\),有\(q\)次操作,第\(i\)次选择一个区间,将区间里的数全部 ...

  3. Codeforces 1023 A.Single Wildcard Pattern Matching-匹配字符 (Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Fi)

    Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) A. Single Wildcard Patter ...

  4. E - Down or Right Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final)

    http://codeforces.com/contest/1023/problem/E 交互题 #include <cstdio> #include <cstdlib> #i ...

  5. Codeforces Round #504:D. Array Restoration

    D. Array Restoration 题目链接:https://codeforces.com/contest/1023/problem/D 题意: 给出一个序列,现在要求对一个全为0的序列执行q次 ...

  6. Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final)-D- Array Restoration

    我们知道不满足的肯定是两边大中间小的,这样就用RMQ查询两个相同等值的区间内部最小值即可,注意边界条件 #include<bits/stdc++.h> #define x first #d ...

  7. Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final)-C-Bracket Subsequence

    #include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> ...

  8. Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final)-A-Single Wildcard Pattern Matching

    #include<iostream> #include<algorithm> #include<stdio.h> #include<string.h> ...

  9. Codeforces Round #504 (rated, Div. 1 + Div. 2, based on VK Cup 2018 Final) E. Down or Right

    从(1,1,n,n)每次只变一个坐标,进行询问. 如果问到对角线有距离限制, 再从(1,1,n/2,n/2)询问到(n/2,n/2,n,n) 记住前半部分贪心忘上走,后本部分贪心往右走 因为最后的路线 ...

随机推荐

  1. C# Xamarin For Android自动升级项目实战

    一.课程介绍 “明人不说暗话,跟着阿笨一起玩Xamarin”,本次分享课程阿笨将带来大家一起学习Xamarin For Android系列<C# Xamarin For Android自动升级项 ...

  2. 推荐一个好工具:P/Invoke Interop Assistant【转】

    原文地址 :http://write.blog.csdn.net/postedit 在从托管代码里面调用非托管代码的时候,经常会翻阅MSDN找到需要调用的这个程序集里面的关于需要调用方法的签名,还要特 ...

  3. OSI(Open System Interconnect) 网络七层协议

    你作为用户想发个快递,你叫来了顺丰,顺丰快递员从你手里拿走了快递,又装进一个盒子,然后把一个快递单子贴在了上面. 快递员回到集散中心,将快递往那一扔不管了,分拣员把快递按投递的省市分开,发往同一地区的 ...

  4. Linux安装NET CORE

    Linux安装.NET CORE 1.Add the dotnet apt-get feed 为了在Ubuntu或Linux Mint上安装.NET,您需要首先设置托管所需软件包的apt-get fe ...

  5. Swift Struct 结构体

    前言 Swift 语言有两种基本的数据类型,即类(class)和结构体(struct),class 这样的概念大家不会陌生,而 struct 也并不是什么新的概念,在 Objective-C 和 C ...

  6. 使用idea对spring boot项目打jar和war包[文件]

    pom.xml文件编写 打JAR包时 <groupId>com.netcorner</groupId> <artifactId>demo</artifactI ...

  7. fastcgi php-cgi与php-fpm区别和之间的关系

    关于FastCGI.php-cgi.php-fpm的区别是什么,各自有什么用途,以及相互间的关系是什么,查阅相关资料,可谓是众说纷纭,莫衷一是: 说法一:fastcgi是一个协议,php-fpm实现了 ...

  8. nginx:not a directory

    项目需要在nginx中提供一个配置文件返回接口的信息,于是就添加了location来实现,本以为很简单的操作,结果访问配置文件时一直返回404,nginx的error log中输出:not a dir ...

  9. LaTeX数学模式&上下标&代码块

    效果就是如上图所示了.学习了使用数学模式插入公式和使用上标和公式的编号.这里的目录没有展开,在编译一次目录会展开,代码块会被挤到下一页上面去. \documentclass[UTF8]{ctexart ...

  10. Android Studio编译报错“java.lang.OutOfMemoryError: GC overhead limit exceeded

    1.在build.gradle添加脚本指定编译堆内存 如果在整个工程中生效,则在build.gradle中增加如下配置: android { .............. dexOptions { i ...