试题链接:http://www.accoders.com/contest.php?cid=1894   考试密码请私信;

   T1

  残忍WA 0,明明就是一道非常菜的字符串QAQ

  思路:一共找四种东西,AC,CA,ACA,CAC,显然后两者

都可以作为AC或CA使用,每次查找后将查找到的串全变为

'B'避免重复搜索,三个bool变量记录即可

T1-

 #include <bits/stdc++.h>
using namespace std;
char s[];
int len;
bool ac,ca,ak;
int main(){
while(scanf("%s",&s)==){
len=strlen(s);
for(register int i=;i<len-;i++){
if((s[i]=='A'&&s[i+]=='C'&&s[i+]=='A'&&ak==)||(s[i]=='C'&&s[i+]=='A'&&s[i+]=='C'&&ak==)){ak=;s[i]=s[i+]=s[i+]='B';}
if(s[i]=='A'&&s[i+]=='C'&&ac==){
ac=;
s[i]='B';s[i+]='B';
}
if(s[i]=='C'&&s[i+]=='A'&&ca==){
ca=;
s[i]='B';s[i+]='B';
}
}
if(ak==&&(ac==||ca==)) printf("YES\n");
else if(ac==&&ca==) printf("YES\n");
else printf("NO\n");
ac=,ca=,ak=;
memset(s,' ',sizeof(s));
}
return ;
}

AC

   T2

  一道看上去像大水题的难题,需要神奇的搜索方式来搞

掉,难度中上

  思路:首先找到大兵所在位置,然后填补他所在2*2的格子,

然后是4*4,8*8以对角线的方式来搜索填补对面的格子,以确保

一定填满的同时,填法不会出锅,填的同时记录填补格子的坐标

和放置方式,最后按照字典序输出即可

T2-

 #include <bits/stdc++.h>
using namespace std;
int n,k,a[][];
int f[]={,,,,,,,,,,};
struct node{
int x,y,w;
}ans[];
int ansnum;
bool cmp(node p,node q){
if(p.x==q.x) return p.y<q.y;
else return p.x<q.x;
}
void dfs(int x1,int y1,int x2,int y2,int X,int Y){
if(x2-x1==&&y2-y1==){
if(X==x1&&Y==y1){ans[++ansnum].x=x1,ans[ansnum].y=y1,ans[ansnum].w=;}
if(X==x1&&Y==y2){ans[++ansnum].x=x1,ans[ansnum].y=y1,ans[ansnum].w=;}
if(X==x2&&Y==y1){ans[++ansnum].x=x1,ans[ansnum].y=y1,ans[ansnum].w=;}
if(X==x2&&Y==y2){ans[++ansnum].x=x1,ans[ansnum].y=y1,ans[ansnum].w=;}
return;
}
int x=(x2-x1+)/+x1-;
int y=(y2-y1+)/+y1-;
if(X<=x&&Y<=y){
dfs(x1,y1,x,y,X,Y);
ans[++ansnum].x=x,ans[ansnum].y=y,ans[ansnum].w=;
dfs(x+,y1,x2,y,x+,y);
dfs(x+,y+,x2,y2,x+,y+);
dfs(x1,y+,x,y2,x,y+);
}
if(X<=x&&Y>y){
dfs(x1,y+,x,y2,X,Y);
ans[++ansnum].x=x,ans[ansnum].y=y,ans[ansnum].w=;
dfs(x1,y1,x,y,x,y);
dfs(x+,y1,x2,y,x+,y);
dfs(x+,y+,x2,y2,x+,y+);
}
if(X>x&&Y<=y){
dfs(x+,y1,x2,y,X,Y);
ans[++ansnum].x=x,ans[ansnum].y=y,ans[ansnum].w=;
dfs(x+,y+,x2,y2,x+,y+);
dfs(x1,y1,x,y,x,y);
dfs(x1,y+,x,y2,x,y+);
}
if(X>x&&Y>y){
dfs(x+,y+,x2,y2,X,Y);
ans[++ansnum].x=x,ans[ansnum].y=y,ans[ansnum].w=;
dfs(x1,y1,x,y,x,y);
dfs(x1,y+,x,y2,x,y+);
dfs(x+,y1,x2,y,x+,y);
}
}
int main(){
int x,y;
scanf("%d%d%d",&k,&x,&y);
n=f[k];
dfs(,,n,n,x,y);
sort(ans+,ans+ansnum+,cmp);
for(register int i=;i<=ansnum;i++) printf("%d %d %d\n",ans[i].x,ans[i].y,ans[i].w);
return ;
}

拯救瑞恩

   T3

  个人认为一道极其毒瘤的题(尤其针对我这种链表+dfs打不好的人)

  思路:用链式前向星存储图,然后dfs搜索答案,在dfs中用二分查找

来维护区间的值....(这谁顶得住)

T3-

 #include <bits/stdc++.h>
using namespace std;
struct node{
long long nxt,to,dis;
}edge[];
long long head[];
long long cnt,ans,n,k,m,u,v,w;
long long a[],zkcrp[];
void addedge(int from,int to,int w)
{
cnt++;
edge[cnt].to=to;
edge[cnt].dis=w;
edge[cnt].nxt=head[from];
head[from]=cnt;
}
bool ef(int l,int r,long long zkc)
{
if(zkcrp[l]==zkc||zkcrp[r]==zkc) return true;
if(r-l<=) return false;
int mid=(l+r)>>;
if(zkcrp[mid]<zkc)return ef(mid+,r,zkc);
else return ef(l,mid,zkc);
}
void dfs(long long now,long long deep)
{
if(ef(,deep,a[now]-k)) ans++;
for(register int i=head[now];i;i=edge[i].nxt)
{
if(a[edge[i].to]||edge[i].to==m)continue;
a[edge[i].to]=a[now]+edge[i].dis;
zkcrp[deep+]=a[edge[i].to];
dfs(edge[i].to,deep+);
}
}
int main(){
scanf("%lld%lld%lld",&n,&m,&k);
for(register int i=;i<n;i++){
scanf("%lld%lld%lld",&u,&v,&w);
addedge(u,v,w);
addedge(v,u,w);
}
dfs(m,);
printf("%lld\n",ans);
return ;
}

tree

   end;

 

2019西安多校联训 Day2的更多相关文章

  1. 2019西安多校联训 Day5

    T1 光哥为了不让某初二奆佬恶心到我们而留下的火种 (貌似没这题平均分就100-了) 思路:就一横一竖让后就gztopa嘛 #include <bits/stdc++.h> using n ...

  2. 2019西安多校联训 Day4

    T1 大水题!!难度简单,显然的贪心策略即可,but... 思路:首先我们按与i点作战后活下来的士兵排序,然后 若当前剩余兵力足够直接减掉战斗死亡人数,如果不够就加 够再打它,但是!我们在考完试观察测 ...

  3. 2019西安多校联训 Day3

    试题链接:http://www.accoders.com/contest.php?cid=1895    考试密码请私信; 特别鸣谢:zkc奆佬帮助我优化本篇题解(语言表达方面) T1 显然二分求解的 ...

  4. 2019西安多校联训 Day1

    试题链接:http://www.accoders.com/contest.php?cid=1893  考试密码请私信;    T1 明明就是O(n)的模拟,强行打成二分QAQ 思路:判断收尾是否为1或 ...

  5. Contest1893 - 2019年6月多校联训b层测试1

    传送门 密码:waxadyt T1 暴力 对于任意相邻的两个值 中间能到达的最大高度是固定的 加上头尾,判一下就好了 代码//感谢Th Au K #include<bits/stdc++.h&g ...

  6. 2019中山纪念中学夏令营-Day2[JZOJ]

    博客的开始,先聊聊代码实现: 每次比赛以后,要有归纳错误的习惯. 错误小结: 1.读入:scanf(“%c”)会读入回车和空格,但cin不会. 2.对于二维数组的输入,不能把m,n搞混了,会引起严重的 ...

  7. [DBSDFZOJ 多校联训] 就

    就 背景描述 一排 N 个数, 第 i 个数是 Ai , 你要找出 K 个不相邻的数, 使得他们的和最大. 请求出这个最大和. 输入格式 第一行两个整数 N 和 K. 接下来一行 N 个整数, 第 i ...

  8. [DBSDFZOJ 多校联训] Password

    Password password.in/.out 描述 你来到了一个庙前,庙牌上有一个仅包含小写字母的字符串 s. 传说打开庙门的密码是这个字符串的一个子串 t,并且 t 既是 s 的前缀又是 s ...

  9. 2019 湖南多校第一场(2018~2019NCPC) 题解

    解题过程 开场shl过B,C,然后lfw写J,J WA了以后shl写A,但是因为OJ上空间开小WA了,而不是MLE?,J加了特判过了.之后一直在检查A错哪了,直到qt发现问题改了空间,浪费许多时间,但 ...

随机推荐

  1. [软件分享]aboboo英语复读机 使用心得

    软件名称:aboboo www.aboboo.com 作用:英语复读,社区互动,丰富的材料,可以全方位锻炼听说能力. 技巧1:如何锻炼口语? 注册一个帐号,登陆后下载使用社区自带的课件,然后使用“随意 ...

  2. C#项目的生成事件及批处理文件

    一个C#项目,如果为同一个解决方案的其他项目所引用,则其编译后,会将DLL拷贝到引用项目中:但如果它并不被其他项目引用,但又想编译后能够自动将生成的东西拷贝过去,可以在项目的生成事件中,写上一些批处理 ...

  3. Oracle 11g密码过期问题及解决方案

    问题: 在自用的一个系统里,连接的是本地自建的一个数据库.用sqldeveloper登录数据库.提示如下图: 提示:密码过期 解决方案: 密码过期一般存在两种可能: 由于Oracle中默认在defau ...

  4. redis集群在window下安装

    1.下载安装单机版:  https://github.com/MSOpenTech/redis/releases/download/win-3.2.100/Redis-x64-3.2.100.msi ...

  5. ASP.NET调用存储过程并接收存储过程返回值

    ASP.NET调用存储过程并接收存储过程返回值 2010-08-02 11:26:17|  分类: C#|字号 订阅       2010年02月27日 星期六 23:52 假设表结构Create T ...

  6. 【OI新闻】2016.10.26 - NOIP初赛泄题再次引爆

    有点劲,开车注意点,小心翻啦~ http://www.noi.cn/noi-news/noi/743-ccfnoip2016 CCF在NOIP2016初赛结束后接到举报:初赛前(22日12时左右),网 ...

  7. 洛谷 P1131 [ ZJOI 2007 ] 时态同步 —— 树形DP

    题目:https://www.luogu.org/problemnew/show/P1131 记录 x 子树内同步的时间 f[x],同步所需代价 g[x]: 直接转移即可,让该儿子子树与其它儿子同步, ...

  8. vue 基础知识 随笔

    window.localStorage.gettItem("someItem"||[])//如果localStorage中的someItem不存在就返回一个空数组 window.l ...

  9. v-contextmenu的使用(右键菜单)

    先来个自己改写的图: 代码: 结构:<div class="wrap" v-contextmenu:contextmenu> <v-contextmenu ref ...

  10. Python基础 — Matplotlib

    Matplotlib -- 简介         matplotlib是Python优秀的数据可视化第三方库:        matplotlib库的效果可参考官网:http://matplotlib ...