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之前练练手 ...
随机推荐
- WEBGL学习【十二】鼠标操作场景
<!DOCTYPE HTML> <html lang="en"> <head> <title>Listing 7-3 and 7-4 ...
- jenkins 新增节点的3种方式
1.通过ssh建立节点(在节点机子上要安装好jdk) (1)通过用户+密码建立ssh连接 (2)通过用户+密钥建立连接 2.通过jnlp,javaweb的方式连接 (1)创建好节点 (2)在节点的机子 ...
- Django入门--模板路径配置及渲染
模板就是前端的页面,Django把html源码写到模板文件中,然后通过特定方法渲染后交给客户端. 模板路径设置方法有两种,分别是在项目目录下设置以及在应用目录下设置. 模板查找顺序:优先在DIRS设置 ...
- sso 系统分析
一.什么是 sso 系统 SSO 英文全称 Single Sign On,单点登录.SSO 是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他 ...
- struts配置 WEB得拷贝要注意的事项
原始WEB文件tutoral===>新文件tutoralTest 要将靠拷贝的文件的contextRoot修改(一定要修改)
- Linux常用命令last的使用方法详解
http://www.jb51.net/article/120140.htm 最近在学习linux命令,学习到了last命令,发现很多同学对last命令不是很熟悉,last命令的功能列出目前与过去登入 ...
- [SharePoint2010开发入门经典]一、SPS2010介绍
本章概要: 1.熟悉SPS基本特性 2.理解SPS基础架构 3.开发SPS工具
- RabbitMQ从入门到精通
RabbitMQ从入门到精通 学习了:http://blog.csdn.net/column/details/rabbitmq.html RabbitMQ是AMQP(advanced message ...
- BestCoder Round #75 King's Order dp:数位dp
King's Order Accepts: 381 Submissions: 1361 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 655 ...
- Ural 1152 False Mirrors(状压DP)
题目地址:space=1&num=1152">Ural 1152 初学状压DP,原来状压仅仅是用到了个位运算.. 非常水的状压DP.注意四则运算的优先级是高于位运算的..也就是 ...