Codeforces Round #395 (Div. 2)(未完)
2.2.2017 9:35~11:35
直接模拟
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
typedef long long ll;
const int N=1e4+;
inline int read(){
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-; c=getchar();}
while(c>=''&&c<=''){x=x*+c-''; c=getchar();}
return x*f;
}
int n,m,z,ans;
int vis[N];
int main(int argc, const char * argv[]) {
n=read();m=read();z=read();
for(int i=n;i<=z;i+=n) vis[i]=;
for(int i=m;i<=z;i+=m) ans+=vis[i];
printf("%d",ans);
return ;
}
奇数位置反转,偶数位置不变
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
typedef long long ll;
const int N=2e5+;
inline int read(){
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-; c=getchar();}
while(c>=''&&c<=''){x=x*+c-''; c=getchar();}
return x*f;
}
int n,a[N];
int main(int argc, const char * argv[]) {
n=read();
for(int i=;i<=n;i++) a[i]=read();
for(int i=;i<=n/;i++) if(i&) swap(a[i],a[n-i+]);
for(int i=;i<=n;i++) printf("%d ",a[i]);
return ;
}
题意:选一个根使得所有子树同色(每个子树中节点同色 不同子树可以不同色)
比赛时先打了个傻逼树形DP发现不对 然后就用对于一个点i它的子树用树形DP,它的上面的树用DFS序+线段树/ST表询问颜色相同......反正A掉了
//
// main.cpp
// C
//
// Created by Candy on 2017/2/2.
// Copyright © 2017年 Candy. All rights reserved.
//
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
#define mid ((l+r)>>1)
#define lson x<<1,l,mid
#define rson x<<1|1,mid+1,r
#define lc x<<1
#define rc x<<1|1
typedef long long ll;
const int N=2e5+;
inline int read(){
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-; c=getchar();}
while(c>=''&&c<=''){x=x*+c-''; c=getchar();}
return x*f;
}
int n,u,v,c[N],a[N];
struct edge{
int v,ne;
}e[N<<];
int h[N],cnt=;
inline void ins(int u,int v){
cnt++;
e[cnt].v=v;e[cnt].ne=h[u];h[u]=cnt;
cnt++;
e[cnt].v=u;e[cnt].ne=h[v];h[v]=cnt;
}
struct node{
int same;
}t[N<<];
void build(int x,int l,int r){
if(l==r) t[x].same=a[l];
else{
build(lson);
build(rson);
if(t[lc].same==||t[rc].same==||t[lc].same!=t[rc].same) t[x].same=;
else t[x].same=t[lc].same;
}
}
int segSame(int x,int l,int r,int ql,int qr){
if(ql>qr) return -;
if(t[x].same) return t[x].same;
if(ql<=l&&r<=qr) return t[x].same;
else{
int same=-;
if(ql<=mid) same=segSame(lson,ql,qr);
if(mid<qr){
int _=segSame(rson,ql,qr);
if(same==-||same==_) same=_;
else same=;
}
return same;
}
}
int d[N],L[N],R[N],dfc;
void dfs(int u,int fa){
L[u]=++dfc; a[dfc]=c[u];
d[u]=c[u];
for(int i=h[u];i;i=e[i].ne){
int v=e[i].v;
if(v==fa) continue;
dfs(v,u);
if(d[u]!=&&d[v]!=d[u]) d[u]=;
}
R[u]=dfc;
}
int ans;
void dfsSol(int u,int fa){//printf("dfsSol %d %d\n",u,fa);
if(ans) return;
int flag=;
for(int i=h[u];i;i=e[i].ne) if(e[i].v!=fa)
if(d[e[i].v]==) {flag=;break;}
if(flag){
int s1=segSame(,,n,,L[u]-),s2=segSame(,,n,R[u]+,n);
flag=;
if(s1!=&&s2!=&&(s1==-||s2==-||s1==s2)) flag=;
// printf("hi %d %d %d %d %d %d\n",u,L[u],R[u],s1,s2,flag);
if(flag) {ans=u;return;}
} for(int i=h[u];i;i=e[i].ne)
if(e[i].v!=fa) dfsSol(e[i].v,u);
}
int main(int argc, const char * argv[]) {
n=read();
for(int i=;i<=n-;i++) u=read(),v=read(),ins(u,v);
for(int i=;i<=n;i++) c[i]=read();
dfs(,);
build(,,n);
// for(int i=1;i<=n;i++) printf("hi %d %d %d %d\n",i,d[i],L[i],R[i]);
// for(int i=1;i<=n;i++) printf("a %d %d\n",i,a[i]);
dfsSol(,);
if(ans) printf("YES\n%d",ans);
else puts("NO");
return ;
}
比赛代码
实际上可以发现如果一条边两边节点的颜色不对一定是这两个节点中的一个做根,三遍DFS就行了....好简单
题意:一些不相交矩形边长都是奇数 4种颜色染色 判断可行及一种方案
....最后才看到洛谷群有这道题题解然后最后10s提交失败呜呜呜
超简单 边长奇数,所以横边相邻的矩形y坐标奇偶性不同 x同理 所以按左下角奇偶性染色就行了
//
// main.cpp
// C
//
// Created by Candy on 2017/2/2.
// Copyright © 2017年 Candy. All rights reserved.
//
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <cstring>
#include <cmath>
using namespace std;
typedef long long ll;
inline int read(){
char c=getchar();int x=,f=;
while(c<''||c>''){if(c=='-')f=-; c=getchar();}
while(c>=''&&c<=''){x=x*+c-''; c=getchar();}
return x*f;
}
int n,x,y;
int main(int argc, const char * argv[]) {
n=read();
puts("YES");
for(int i=;i<=n;i++){
x=read();y=read();
x=min(x,read());y=min(y,read());
x+=1e9;y+=1e9;
if(x&){
if(y&) puts("");
else puts("");
}else{
if(y&) puts("");
else puts("");
}
}
}
未完
Codeforces Round #395 (Div. 2)(未完)的更多相关文章
- Codeforces Round #395 (Div. 2)(A.思维,B,水)
A. Taymyr is calling you time limit per test:1 second memory limit per test:256 megabytes input:stan ...
- Codeforces Round #395 (Div. 2) D. Timofey and rectangles
地址:http://codeforces.com/contest/764/problem/D 题目: D. Timofey and rectangles time limit per test 2 s ...
- Codeforces Round #395 (Div. 2) C. Timofey and a tree
地址:http://codeforces.com/contest/764/problem/C 题目: C. Timofey and a tree time limit per test 2 secon ...
- Codeforces Round #395 (Div. 2)B. Timofey and cubes
地址:http://codeforces.com/contest/764/problem/B 题目: B. Timofey and cubes time limit per test 1 second ...
- Codeforces Round #395 (Div. 1)
比赛链接:http://codeforces.com/contest/763 A题: #include <iostream> #include <cstdio> #includ ...
- Codeforces Round #395 (Div. 2)
今天自己模拟了一套题,只写出两道来,第三道时间到了过了几分钟才写出来,啊,太菜了. A. Taymyr is calling you 水题,问你在z范围内 两个序列 n,2*n,3*n...... ...
- 【分类讨论】Codeforces Round #395 (Div. 2) D. Timofey and rectangles
D题: 题目思路:给你n个不想交的矩形并别边长为奇数(很有用)问你可以可以只用四种颜色给n个矩形染色使得相接触的 矩形的颜色不相同,我们首先考虑可不可能,我们分析下最多有几个矩形互相接触,两个时可以都 ...
- 【树形DP】Codeforces Round #395 (Div. 2) C. Timofey and a tree
标题写的树形DP是瞎扯的. 先把1看作根. 预处理出f[i]表示以i为根的子树是什么颜色,如果是杂色的话,就是0. 然后从根节点开始转移,转移到某个子节点时,如果其子节点都是纯色,并且它上面的那一坨结 ...
- Codeforces Round #395 (Div. 2) C
题意 : 给出一颗树 每个点都有一个颜色 选一个点作为根节点 使它的子树各自纯色 我想到了缩点后check直径 当<=3的时候可能有解 12必定有解 3的时候需要check直径中点的组成点里是否 ...
随机推荐
- CentOS 6.5 编译安装 LNMP环境
建立一个软件包目录存放 mkdir -p /usr/local/src/ 清理已经安装包 rpm -e httpd rpm -e mysql rpm -e php yum -y remove http ...
- bean的作用域 :singleton和prototype
- [国嵌攻略][052][NandFlash驱动设计_读]
NandFlash读数据方式 1.页读,读出页中主数据区的所有数据,提供页地址(行地址) 2.随机读,读出页中指定的存储单元的数据,提供页地址(行地址)和页内偏移(行地址) 代码编写 1.根据Nand ...
- 如何开发由Create-React-App 引导的应用(二)
此文章是翻译How to develop apps bootstrapped with Create React App 官方文档 系列文章 如何开发由Create-React-App 引导的应用 如 ...
- Centos6.7安装mysql 5.6简单教程
今天项目经理让我给服务器配一下mysql,以前配置mysql的时候,感觉好麻烦,前几天也帮朋友配置来着,今天装的时候一直报错,百度也没搞明白,所以打算换种方法装mysql,无意中发现了还有这种操作,容 ...
- 浅谈 C/S 和 B/S 架构
概述 在这个信息急剧膨胀的社会,我们不得不说人类正进入一个崭新的时代,那就是信息时代.信息时代的一个主要而显著的特征就是计算机网络的应用.计算机网络从最初的集中式计算,经过了Client/Server ...
- thinkphp3.2.2邮箱发送
浏览:7510 最后更新:2017-03-18 14:21 分类:类库 关键字: PHPMailer 第一步:准备PHPMailer 将下载的PHPMailer放到ThinkPHP/library/V ...
- 通过JiaThis API接口自定义分享功能按钮实现分享功能本地化
http://www.mdaima.com/jingyan/20.html 最早李雷博客采用的是百度分享插件,为此还发过博文讲解如何在一个页面调用多个按钮分享不同的文章,感兴趣的朋友可以在本站搜索一下 ...
- mdb文件怎么打开
(一)mdb格式的文件可以用MS Access打开编辑,也可以用Excel打开只能浏览. (二)mdb是什么文件格式 就像word的doc文件格式,mdb文件格式是Access数据库文件,微软Off ...
- Typescript学习笔记
什么是 TypeScript TypeScript 是 JavaScript 的类型的超集,它可以编译成纯 JavaScript. 安装 TypeScript 命令行工具安装: npm install ...