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

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

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

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

  

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<climits>
#include<vector>
#include<set>
#include<cmath>
#include<queue>
#include<algorithm>
using namespace std;
int n,m;
signed main() {
cin>>n>>m;
if (n > m + ) return puts("NO"), ;
std::string s, t;
std::cin >> s >> t;
int star = ;
for (auto i : s) if (i == '*') star = ;
if (!star && s != t) return puts("NO");
std::string pre = s.substr(, s.find('*')), suf = s.substr(s.find('*') + );
int pres = pre.size(), sufs = suf.size();
if (t.substr(, pres) == pre && t.substr(m - sufs) == suf) puts("YES");
else puts("NO");
}

B:自认非常优雅

  

 #include <bits/stdc++.h>
typedef long long ll;
using namespace std;
ll n,k;
int main(){
scanf("%lld%lld",&n,&k);
ll ans = ;
if(k>n){
ll tmp = k-n;
ans = (n-tmp+)/;
} else{
ll tmp = k-;
ans = (tmp-+)/;
}
ans =ans>?ans:;
printf("%lld\n",ans);
}

C:

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

  

#include <bits/stdc++.h>
typedef long long ll;
using namespace std;
int n,k;
char s[];
int main() {
scanf("%d%d", &n, &k);
scanf("%s", s + );
k/=;
int cnt = ,cnt2=;
for(int i=;i<=n;i++){
if(s[i]=='(')
cnt++;
else
cnt2++;
printf("%c",s[i]);
if(cnt==k)
break;
}
cnt2 = cnt-cnt2;
while (cnt2--){
printf(")");
}
}

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

  题意:我语文不好啊

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

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

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

  

#include <bits/stdc++.h>

typedef long long ll;
using namespace std;
const int N = 2e5 + ;
int n, q;
int a[N], vis[N],l[N],r[N],flag[N];
int minn[*N]; void build(int k, int l, int r) {
if (l == r) {
minn[k] = a[l];
return;
}
int mid = (l + r) >> ;
build(k << , l, mid);
build(k << | , mid + , r);
minn[k] = min(minn[k*],minn[k*+]);
} void update(int k, int l, int r) { } int query(int k, int lef, int rig, int l, int r) {
if (l <= lef && r >= rig)
return minn[k];
int mid = (lef + rig) / ;
int ans = 1e9;
if (l <= mid)
ans = min(ans, query(k * , lef, mid, l, r));
if (r > mid)
ans = min(ans, query(k << | , mid + , rig, l, r));
return ans;
} int main() {
scanf("%d%d", &n, &q);
for (int i = ; i <= n; i++)
scanf("%d", &a[i]);
for (int i = ; i <= n; i++) {
int j = i + ;
while (j <= n && (a[j] == a[i] || a[j] == )) {
if (a[j] == ) {
a[j] = a[i];
flag[j]=;
}
j++;
}
vis[a[i]] = ;
i = j - ;
}
int temp = ;
if(a[]!=&&!vis[q]){
for(int i=;i<=n;i++){
if(flag[i]){
a[i]=q;
vis[q]=;
break;
}
}
if(!vis[q]) {
printf("NO\n");
return ;
}
}
if (a[] == ) {
if (!vis[q]) {
temp = q;
} else {
for (int i = ; i <= n; i++) {
if (a[i] != ) {
temp = a[i];
break;
}
}
}
for (int i = ; i <= n; i++) {
if (a[i] == )
a[i] = temp;
}
}
for(int i=;i<=n;i++){
if(l[a[i]]==)
l[a[i]]=i;
r[a[i]]=i;
}
build(,,n);
for(int i=;i<=q;i++){
if(l[i]==)
continue;
if(query(,,n,l[i],r[i])<i){
printf("NO\n");
return ;
}
}
printf("YES\n");
for(int i=;i<=n;i++){
printf("%d ",a[i]);
}
}

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

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

  

#include <cstdio>
#include <iostream>
#include <cstring>
#include <algorithm> using namespace std;
int n; bool ask(int n,int m,int x,int y){
cout<<"? "<<n<<" "<<m<<" "<<x<<" "<<y<<endl;
string s;
cin>>s;
return s[]=='Y';
}
int main(){
string ans1="";
string ans2="";
scanf("%d",&n);
int i=,j=;
int cnt =;
while (i<=n&&j<=n&&++cnt<=(n-)){
if(ask(i,j+,n,n)){
j++;
ans1+="R";
} else{
i++;
ans1+="D";
}
}
i=n;j=n;cnt=;
while (i>=&&j>=&&++cnt<=n-){
if(ask(,,i-,j)){
i--;
ans2+="D";
} else{
j--;
ans2+="R";
}
}
reverse(ans2.begin(),ans2.end());
printf("! ");
cout<<ans1<<ans2;
}

讲道理这套题要是放到我状态很好的时候我真有可能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. ORACLE数据恢复方法(提交事务也可以)

    今天在操作数据库的时候,发现数据操作错误,想要恢复,但是没有用事务,按理说,设置成不默认提交事务,此时所做的各种操作都没有反应到数据库中.这时,你可以rollback事务,撤销所有未提交的修改.不过, ...

  2. oracle--Tracing PL/SQL subprogram calls with parameters values--Mahmoud Hatem,

    https://mahmoudhatem.wordpress.com/2017/09/15/geeky-plsql-tracerprofiler-first-step/ https://mahmoud ...

  3. ajax跨域请求调用webservice接口

    1.WebService 接口编写 步骤:新建web项目=>添加web service=>编写方法接口=>然后发布(本地测试可以直接把这个web service运行起来). 关键如何 ...

  4. Java通过SMS短信平台实现发短信功能

    在项目中使用过发短信的功能,但那个由于公司内部的限制很麻烦,今天在网上找到一个简单的,闲来无事就把它记录如下: 本程序是通过使用中国网建提供的SMS短信平台实现的(该平台目前为注册用户提供5条免费短信 ...

  5. Activity class {com.../com....MainActivity} does not exist.

    报错信息如上图所示,解决步骤: 1. 首先是检查这个MainActivity.java是不是真的存在,且包名和路径无误: 2. 如果文件存在,且包名和路径没有问题,那么就打开你项目所在的/androi ...

  6. 【Google设计冲刺】一种适合于创新小组的协作方式

    传统的产品闭环是1.产品策划-2.研发-3.上线-4.等待市场反馈,4个步骤.对于一个创新项目来说,试错成本过高,等待周期过长[注释1].那么,有没有一种适合创新项目的协作方式呢?谷歌风投杰克·纳普发 ...

  7. [Python设计模式] 第27章 正则表达式——解释器模式

    github地址:https://github.com/cheesezh/python_design_patterns 解释器模式 解释器模式,给定一个语言,定一个它的文法的一种表示,并定一个一个解释 ...

  8. bootstrap响应式前端页面

    技术:HTML+CSS+JS+bootstrap   概述 这套代码响应式前端页面基本写完了,适合初学前端的同学,里面主要运用了HTML+CSS布局和动画,js逻辑较少,页面都是静态,未接入接口.响应 ...

  9. [转]linux用户管理

    Linux 系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这个账号的身份进入系统.用户的账号一方面可以帮助系统管理员对使用系统的用户进行 ...

  10. Jenkins持续集成 入门实践

    本文测试环境: ASP.NET MVC项目,Windows 7环境,SVN代码仓库, MSBuild,TortoiseSVN 持续集成这种工具很多了,Jenkins比较常用,他的原理就是一个服务,有一 ...