1104
Posted oieredsion
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1104相关的知识,希望对你有一定的参考价值。
多打一个0 爆空间 然后就掉50....
A 妹子
计算几何 斜挂了...
B
贪心贪错了 还掉了50
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
C 相交
题目描述
一棵大树下有 n 个巢穴,由 n-1 条双向道路连接,任意两个城市均可互相到达。
大树附近有两群蚂蚁,每天早上,第一群蚂蚁会派一只蚂蚁到这棵树下,并在第 a 个巢穴
到 第
b 个巢穴间的最短路径上的每个巢穴留下气味。每天傍晚,第二群蚂蚁会派一只蚂蚁到
这
棵树下,并侦查第 c 个巢穴到第 d 个巢穴间的最短路径上是否有蚂蚁留下的气味。
每天蚂蚁留下的气味会在当天深夜消失。
输入
第一行一个正整数 n,含义如题所示。
接下来 n-1 行,每行两个正整数 u,v,表示第 u 个巢穴和第 v 个巢穴间有一条双向道路。
接下来一行一个正整数 q,表示天数。
接下来 q 行,每行四个正整数 a,b,c,d,含义如题所示。
输出
q 行,每行一个字符串。
若第二群派出的蚂蚁侦查到蚂蚁留下的气味,则输出” YES” ,否则输出” NO”
解1:
显然用树链剖分+树状数组维护
//
#include<bits/stdc++.h>
using namespace std;
#define maxnn 301000
#define GC getchar()
int n;
int las[maxnn],en[maxnn],nex[maxnn],tot;
int son[maxnn];
int size[maxnn];
int f[maxnn];
int c1[maxnn],c2[maxnn];
int dep[maxnn];
int dfn[maxnn],low[maxnn],vii,topp[maxnn];
void add(int a,int b) {
en[++tot]=b;
nex[tot]=las[a];
las[a]=tot;
}
void dfs1(int v,int fa) {
dep[v]=dep[fa]+1;
size[v]=1;
f[v]=fa;
int maxson=-1;
for(int i=las[v]; i; i=nex[i]) {
int u=en[i];
if(u!=fa) {
dfs1(u,v);
size[v]+=size[u];
if(size[u]>maxson) {
son[v]=u;
maxson=size[u];
}
}
}
}
void dfs2(int v,int fa,int t) {
topp[v]=t;
dfn[v]=++vii;
if(son[v]) {
dfs2(son[v],v,t);
}
for(int i=las[v]; i; i=nex[i]) {
int u=en[i];
if(u==fa) continue;
if(u==son[v]) continue;
dfs2(u,v,u);
}
}
inline int R() {
char t;
int x=0;
while(!isdigit(t)) {
t=GC;
}
while(isdigit(t)) {
x=x*10+t-48;
t=GC;
}
return x;
}
#define lowbit(i) i&(-i)
void aaa(int x,int d) {
for(int i=x; i<=n+10000; i+=lowbit(i)) {
c1[i]+=d;
c2[i]+=x*d;
}
}
int get(int x) {
int ans=0;
for(int i=x; i; i-=lowbit(i)) {
ans+=c1[i]*(x+1);
ans-=c2[i];
}
return ans;
}
void zadd(int x,int y,int d) {
while(topp[x]!=topp[y]) {
if(dep[topp[x]]<dep[topp[y]]) swap(x,y);
aaa(dfn[topp[x]],d);
aaa(dfn[x]+1,-d);
x=f[topp[x]];
}
if(dep[x]<dep[y]) swap(x,y);
aaa(dfn[y],d);
aaa(dfn[x]+1,-d);
}
bool query(int x,int y) {
int ans=0;
while(topp[x]!=topp[y]) {
if(dep[topp[x]]<dep[topp[y]]) swap(x,y);
if(get(dfn[x])-get(dfn[topp[x]]-1)) return true;
x=f[topp[x]];
}
if(dep[x]<dep[y]) swap(x,y);
if(get(dfn[x])-get(dfn[y]-1)) return true;
return false;
}
void FIE()
{
freopen("inter.in","r",stdin);
freopen("inter.out","w",stdout);
}
int main() {
//FIE();
n=R();
int x,y;
for(int i=1; i<n; i++) {
x=R();
y=R();
add(x,y);
add(y,x);
}
dfs1(1,1);
dfs2(1,1,1);
int q;
q=R();
int a,b,c,d;
while(q--) {
a=R();
b=R();
c=R();
d=R();
zadd(a,b,1);
if(query(c,d)) {
puts("YES");
} else {
puts("NO");
}
zadd(a,b,-1);
}
}
解2
以上是关于1104的主要内容,如果未能解决你的问题,请参考以下文章
使用 Relay 和 React-Native 时的条件片段或嵌入的根容器
错误 LNK1104:无法打开文件 'aocl_utils.lib'
Visual Studio c++ 仅在调试模式下 LNK 1104 错误