cf掉分记——Avito Code Challenge 2018
再次作死的打了一次cf的修仙比赛感觉有点迷。。
还好掉的分不多(原本就太低没法掉了QAQ)
把会做的前三道水题记录在这。。
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;
}
用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;
}
题面略迷。。
大概意思是找到一种方式 分配他所给你的一些边 使组成一些简单路径要求每两条简单路径都有一个公共点
保证给出的边组成一棵树,输出路径数和每条路径的起点和终点 (顺序无所谓)这么水的题 题面就让我看了半天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的更多相关文章
- Codeforces Avito Code Challenge 2018 D. Bookshelves
Codeforces Avito Code Challenge 2018 D. Bookshelves 题目连接: http://codeforces.com/contest/981/problem/ ...
- Avito Code Challenge 2018
第一次打CF,很菜,A了三道水题,第四题好像是是数位DP,直接放弃了.rateing从初始的1500变成了1499,还是绿名,这就很尴尬.之后觉得后面的题目也没有想象的那么难(看通过人数)过两天吧剩下 ...
- Codeforces - Avito Code Challenge 2018
Portal A. Antipalindrome 暴力. B. Businessmen Problems 暴力. C. Useful Decomposition 居然不是C打头的?! 将一棵树划分成若 ...
- Avito Code Challenge 2018 A~E
A. Antipalindrome 还以为是什么神dp结果就是分情况讨论啊 原串是一串一样的字符的话输出0,是回文串的话输出n-1,否则直接输出原串长度 #include<iostream> ...
- Avito Code Challenge 2018 C
C. Useful Decomposition time limit per test 1 second memory limit per test 256 megabytes input stand ...
- [Avito Code Challenge 2018 G] Magic multisets(线段树)
题目链接:http://codeforces.com/contest/981/problem/G 题目大意: 有n个初始为空的‘魔法’可重集,向一个‘可重集’加入元素时,若该元素未出现过,则将其加入: ...
- Codeforces940掉分记
掉分经过 难得这次时间比较好,下午17:35开始. 本来还很高兴,心想这回肯定不会犯困,没准排名能再上升一些呢,,可惜事与愿违-- 上来a题,光看懂题就花了一些时间. 然后开始写,结果第一遍CE,第二 ...
- Avito Cool Challenge 2018 自闭记
A:n==2?2:1. #include<iostream> #include<cstdio> #include<cmath> #include<cstdli ...
- CF480Div2掉分记
rating 1900+参加只有Div2的比赛也记rating了.还以为yyc报名没打会惨惨,原来不交题好像就不算参加.. 本来太晚了不想打,不过有Sinogi大佬带我还是打一打吧,apio之前练练手 ...
随机推荐
- BZOJ 1901 Dynamic Rankings (整体二分+树状数组)
题目大意:略 洛谷传送门 这道题在洛谷上数据比较强 貌似这个题比较常见的写法是树状数组套主席树,动态修改 我写的是整体二分 一开始的序列全都视为插入 对于修改操作,把它拆分成插入和删除两个操作 像$C ...
- win主机ping不通linux的IP
1.虚拟机的中的linux系统设置成桥接模式 2.点击虚拟机的编辑选择虚拟网络编辑器 3.点击更改设置 4点击还原默认设置即可
- Django入门--模板标签、继承与引用
一.模板标签 Django模板引擎提供的可以在模板中进行的各种逻辑操作,是函数调用的一种特殊形式,如循环.判断等功能,期语法规则为: {% tag %} content {% tag 参数1 参数2 ...
- vue-cli快速搭建
vue-cli是用于开发大型vue项目的脚手架工具,使用vue-cli搭建好平台后,只需要关注程序的开发,不用过多的花时间去思考文件配置的问题 当然,还是可以任意进行自定义配置,官方地址:vue-cl ...
- BA-siemens-insight_ppcl_adapts函数用法
adapts函数是比pid调节性更好的自适应调节算法,比pid有更好的稳定性,具有震荡小.调节过程快.平稳等特点,函数的用法如下:
- [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 ...
- HDU 1171 Big Event in HDU(多重背包)
Big Event in HDU Problem Description Nowadays, we all know that Computer College is the biggest depa ...
- HDU 2732 Leapin' Lizards(拆点+最大流)
HDU 2732 Leapin' Lizards 题目链接 题意:有一些蜥蜴在一个迷宫里面,有一个跳跃力表示能跳到多远的柱子,然后每根柱子最多被跳一定次数,求这些蜥蜴还有多少是不管怎样都逃不出来的. ...
- ACM-SG函数之Fibonacci again and again——hdu1848
Fibonacci again and again Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Jav ...
- hdu1181(变形课)
点击打开链接 Problem Description 呃......变形课上Harry碰到了一点小麻烦,由于他并不像Hermione那样可以记住全部的咒语而任意的将一个棒球变成刺猬什么的,可是他发现了 ...