


Codeforces Round #264 (Div. 2) E. Caisa and Tree Operation violence on the tree_html/css_WEB-ITnose
Jun 24, 2016 am 11:55 AM
http://codeforces.com/contest/463/problem/E
Given a tree with a total number of nodes n, each node has a value, perform q Operations, each operation has two options:
1. Query each node on the path between node v and root, and find the distance that satisfies the condition gcd(val[i], val[v]) > 1 vThe index of the nearest node.
2. Change the value of node v to w.
The violence is over!
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
#include <algorithm>
#include <stack>
#include <queue>
#include <string>
#include <vector>
#include <set>
#include < map>
#include <cassert>
using namespace std;
#define RD(x) scanf("%d",&x)
#define RD2(x,y) scanf(" %d%d",&x,&y)
#define clr0(x) memset(x,0,sizeof(x))
typedef long long LL;
const int maxn = 400005;
struct edge{
int next,to;
}e[maxn];
int head[maxn],n,q,w[maxn],cntn,f[maxn];
void add (int u,int v)
{
e[cntn] = (edge){head[u],v};
head[u] = cntn ;
e[cntn] = ( edge){head[v],u};
head[v] = cntn ;
}
int gcd(int x,int y)
{
return y == 0 ? x:gcd(y,x%y);
}
void dfs(int u,int fa)
{
f[u] = fa;
for(int i = head [u];i != -1;i = e[i].next){
int v = e[i].to;
if(v == fa) continue;
dfs( v,u);
}
}
int find_gcd(int v)
{
int u = f[v];
while(u != -1){
int res = gcd(w[v],w[u]);
if(res > 1){
return u;
}
u = f[u];
}
return -1;
}
int main() {
RD2(n,q);
for(int i = 1;i <= n; i)
RD(w[i]);
int m = n - 1,u,v,ww;
memset(head,-1,sizeof(head)),clr0(f);
while(m--){
RD2(u,v);
add(u,v);
}
dfs(1,-1);
while(q- -){
RD2(u,v);
if(u == 1){
printf("%dn",find_gcd(v));
}
else{
RD(ww);
w[v] = ww;
}
}
return 0;
}

Hot Article

Hot tools Tags

Hot Article

Hot Article Tags

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Difficulty in updating caching of official account web pages: How to avoid the old cache affecting the user experience after version update?

How do I use HTML5 form validation attributes to validate user input?

How to efficiently add stroke effects to PNG images on web pages?

What is the purpose of the <iframe> tag? What are the security considerations when using it?

What are the security implications of using iframes, and how can I mitigate them?

What are the best practices for cross-browser compatibility in HTML5?

How do I use the HTML5 <time> element to represent dates and times semantically?

How do I use the HTML5 <meter> element to display numerical data within a range?
