再次作死的打了一次cf的修仙比赛感觉有点迷。。

还好掉的分不多(原本就太低没法掉了QAQ)

把会做的前三道水题记录在这。。

A: Antipalindrome

emmmm...直接暴力枚举

code:

//By Menteur_Hxy
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
using namespace std; int n,ans;
char ch[100]; bool jud(int l,int len) {
int r=l+len-1;
for(int i=0;i<(len>>1);i++)
if(ch[l+i]!=ch[r-i]) return 1;
return 0;
} bool check(int len) {
for(int i=1;i+len-1<=n;i++)
if(jud(i,len)) return 1;
return 0;
} int main() {
scanf("%s",ch+1);
n=strlen(ch+1);
for(int i=n;i>1;i--) {
if(check(i)) {ans=i;break;}
}
if(!ans) printf("0");
else printf("%d",ans);
return 0;
}

B: Businessmen Problems

用map直接上记下每个元素的最大值最后加起来

code:

//By Menteur_Hxy
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <map>
#define M(a,b) memset(a,(b),sizeof(a))
#define F(i,a,b) for(register int i=(a);i<=(b);i++)
#define LL long long
using namespace std; LL rd() {
LL x=0,fla=1; char c=' ';
while(c<'0'||c>'9') {c=getchar();if(c=='-') fla=-fla;}
while(c>='0'&&c<='9') x=x*10+c-'0',c=getchar();
return x*fla;
} map <int,int> M; int main() {
int n=rd();
F(i,1,n) {
int x=rd(),y=rd();
M[x]=y;
}
int m=rd();
F(i,1,m) {
int x=rd(),y=rd();
if(M.count(x)) {
M[x]=max(M[x],y);
}else {
M[x]=y;
}
}
LL ans=0;
for(map<int,int>::iterator it=M.begin();
it!=M.end();it++) {
if(it->second) ans+=it->second;
}
printf("%lld",ans);
return 0;
}

C: Useful Decomposition

题面略迷。。

大概意思是找到一种方式 分配他所给你的一些边 使组成一些简单路径要求每两条简单路径都有一个公共点

保证给出的边组成一棵树,输出路径数和每条路径的起点和终点 (顺序无所谓)这么水的题 题面就让我看了半天QAQ

显然考虑只有一个公共点,记录每个点连着几条边然后分情况:

1.如果有两个点连着超过两条边说明无法完成

2.如果仅有一个点连边超过两条 答案为以它为端点的所有简单路径

3.如果无连边超过两条的那么只有一条简单路径 且两个只连一条边的点为两端点

code: (略暴力)

//By Menteur_Hxy
#include <cstdio>
#include <iostream>
#include <algorithm>
#include <cstring>
#include <map>
#include <vector>
#define M(a,b) memset(a,(b),sizeof(a))
#define F(i,a,b) for(register int i=(a);i<=(b);i++)
#define LL long long
using namespace std; inline LL rd() {
LL x=0,fla=1; char c=' ';
while(c>'9'|| c<'0') {if(c=='-') fla=-fla; c=getchar();}
while(c<='9' && c>='0') x=x*10+c-'0',c=getchar();
return x*fla;
} inline void out(LL x){
int a[25],wei=0;
if(x<0) putchar('-'),x=-x;
for(;x;x/=10) a[++wei]=x%10;
if(wei==0){ puts("0"); return;}
for(int j=wei;j>=1;--j) putchar('0'+a[j]);
putchar('\n');
} const int N=10010;
const int INF=0x3f3f3f3f;
int n,rt,cnt;
int du[N],head[N]; struct edges{
int to,next;
}e[N<<2]; void add(int x,int y) {
e[++cnt].next=head[x];
e[cnt].to=y;
head[x]=cnt;
} int dfs(int x,int pre) {
for(int i=head[x];i;i=e[i].next) {
int v=e[i].to;
if(v!=pre) return dfs(v,x);
}
return x;
} int main() {
n=rd();
F(i,1,n-1) {
int u=rd(),v=rd();
add(u,v);add(v,u);
du[u]++,du[v]++;
}
F(i,1,n) if(du[i]>2) rt=i;
F(i,1,n) if(du[i]>2&&i!=rt) {
printf("No");
return 0;
}
if(!rt) {
printf("Yes\n1\n");
F(i,1,n) if(du[i]==1) printf("%d ",i);
return 0;
}
printf("Yes\n%d\n",du[rt]);
for(int i=head[rt];i;i=e[i].next) {
int v=e[i].to;
printf("%d %d\n",rt,dfs(v,rt));
}
return 0;
}

后面回头再说吧(不会做QAQ)



版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.cnblogs.com/Menteur-Hxy/p/9099644.html

cf掉分记——Avito Code Challenge 2018的更多相关文章

  1. Codeforces Avito Code Challenge 2018 D. Bookshelves

    Codeforces Avito Code Challenge 2018 D. Bookshelves 题目连接: http://codeforces.com/contest/981/problem/ ...

  2. Avito Code Challenge 2018

    第一次打CF,很菜,A了三道水题,第四题好像是是数位DP,直接放弃了.rateing从初始的1500变成了1499,还是绿名,这就很尴尬.之后觉得后面的题目也没有想象的那么难(看通过人数)过两天吧剩下 ...

  3. Codeforces - Avito Code Challenge 2018

    Portal A. Antipalindrome 暴力. B. Businessmen Problems 暴力. C. Useful Decomposition 居然不是C打头的?! 将一棵树划分成若 ...

  4. Avito Code Challenge 2018 A~E

    A. Antipalindrome 还以为是什么神dp结果就是分情况讨论啊 原串是一串一样的字符的话输出0,是回文串的话输出n-1,否则直接输出原串长度 #include<iostream> ...

  5. Avito Code Challenge 2018 C

    C. Useful Decomposition time limit per test 1 second memory limit per test 256 megabytes input stand ...

  6. [Avito Code Challenge 2018 G] Magic multisets(线段树)

    题目链接:http://codeforces.com/contest/981/problem/G 题目大意: 有n个初始为空的‘魔法’可重集,向一个‘可重集’加入元素时,若该元素未出现过,则将其加入: ...

  7. Codeforces940掉分记

    掉分经过 难得这次时间比较好,下午17:35开始. 本来还很高兴,心想这回肯定不会犯困,没准排名能再上升一些呢,,可惜事与愿违-- 上来a题,光看懂题就花了一些时间. 然后开始写,结果第一遍CE,第二 ...

  8. Avito Cool Challenge 2018 自闭记

    A:n==2?2:1. #include<iostream> #include<cstdio> #include<cmath> #include<cstdli ...

  9. CF480Div2掉分记

    rating 1900+参加只有Div2的比赛也记rating了.还以为yyc报名没打会惨惨,原来不交题好像就不算参加.. 本来太晚了不想打,不过有Sinogi大佬带我还是打一打吧,apio之前练练手 ...

随机推荐

  1. BZOJ 1901 Dynamic Rankings (整体二分+树状数组)

    题目大意:略 洛谷传送门 这道题在洛谷上数据比较强 貌似这个题比较常见的写法是树状数组套主席树,动态修改 我写的是整体二分 一开始的序列全都视为插入 对于修改操作,把它拆分成插入和删除两个操作 像$C ...

  2. win主机ping不通linux的IP

    1.虚拟机的中的linux系统设置成桥接模式 2.点击虚拟机的编辑选择虚拟网络编辑器 3.点击更改设置 4点击还原默认设置即可

  3. Django入门--模板标签、继承与引用

    一.模板标签 Django模板引擎提供的可以在模板中进行的各种逻辑操作,是函数调用的一种特殊形式,如循环.判断等功能,期语法规则为: {% tag %} content {% tag 参数1 参数2 ...

  4. vue-cli快速搭建

    vue-cli是用于开发大型vue项目的脚手架工具,使用vue-cli搭建好平台后,只需要关注程序的开发,不用过多的花时间去思考文件配置的问题 当然,还是可以任意进行自定义配置,官方地址:vue-cl ...

  5. BA-siemens-insight_ppcl_adapts函数用法

    adapts函数是比pid调节性更好的自适应调节算法,比pid有更好的稳定性,具有震荡小.调节过程快.平稳等特点,函数的用法如下:

  6. [Tailwind] Abstract Utility Classes to BEM Components in Tailwind

    When creating UIs with utility classes, a lot of repetition can occur within the HTML markup. In thi ...

  7. HDU 1171 Big Event in HDU(多重背包)

    Big Event in HDU Problem Description Nowadays, we all know that Computer College is the biggest depa ...

  8. HDU 2732 Leapin&#39; Lizards(拆点+最大流)

    HDU 2732 Leapin' Lizards 题目链接 题意:有一些蜥蜴在一个迷宫里面,有一个跳跃力表示能跳到多远的柱子,然后每根柱子最多被跳一定次数,求这些蜥蜴还有多少是不管怎样都逃不出来的. ...

  9. ACM-SG函数之Fibonacci again and again——hdu1848

    Fibonacci again and again Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Jav ...

  10. hdu1181(变形课)

    点击打开链接 Problem Description 呃......变形课上Harry碰到了一点小麻烦,由于他并不像Hermione那样可以记住全部的咒语而任意的将一个棒球变成刺猬什么的,可是他发现了 ...