A.判断n/k的奇偶性。

#include<bits/stdc++.h>
using namespace std; long long n,k; int main()
{
ios::sync_with_stdio();
cin >> n >> k;
long long t = n/k;
if(t%) cout << "YES" << endl;
else cout << "NO" << endl;
return ;
}

B.先计算l = len(ss)-len(s去掉*后),若l小于0,则肯定NO。从左到右一个个判断,遇到*的时候,直接判断ss中l个字母。还要注意*在末尾的情况。

#include<bits/stdc++.h>
using namespace std; string s,ss;
int n;
map<char,int> mp; int main()
{
ios::sync_with_stdio();
cin >> ss >> s >> n;
for(int i = ;i < ss.length();i++) mp[ss[i]] = ;
s = ' '+s;
while(n--)
{
cin >> ss;
ss = ' '+ss;
int t = ss.length()-s.length()+,flag = ;
if(t < )
{
cout << "NO" << endl;
continue;
}
int i = ,j = ;
for(;i < s.length() && j < ss.length();i++,j++)
{
if(s[i] == '?')
{
if(!mp.count(ss[j])) flag = ;
}
else if(s[i] == '*')
{
j--;
while(t--)
{
j++;
if(mp.count(ss[j])) flag = ;
}
}
else if(s[i] != ss[j]) flag = ;
}
if(i < s.length() && s[i] == '*') i++;
if(flag && i == s.length() && j == ss.length()) cout << "YES" << endl;
else cout << "NO" << endl;
}
return ;
}

C.二分时间,对于每一个时间,更新每个向左的人的满足区间和向右的人的满足区间,只要两个区间相交,则该时间符合。

#include<bits/stdc++.h>
using namespace std; int n;
long long s;
struct xx
{
long long x,v,d;
}a[]; bool ok(double t)
{
long long l1 = ,r1 = ,l2 = ,r2 = ;
for(int i = ;i <= n;i++)
{
if(a[i].d == )
{
if(a[i].v*t >= a[i].x)
{
l1 = ;
r1 = ;
}
else if((a[i].v+s)*t >= a[i].x)
{
l1 = min(l1,a[i].x);
r1 = max(r1,a[i].x+(long long)((s*t+a[i].v*t-a[i].x)*(s-a[i].v))/s);
}
}
else
{
if(a[i].v*t >= -a[i].x)
{
l2 = ;
r2 = ;
}
else if((a[i].v+s)*t >= -a[i].x)
{
r2 = max(r2,a[i].x);
l2 = min(l2,a[i].x-(long long)((s*t+a[i].v*t-+a[i].x)*(s-a[i].v))/s);
}
}
}
if(l1 > r2 || l2 > r1) return ;
return ;
}
int main()
{
ios::sync_with_stdio();
cin >> n >> s;
for(int i = ;i <= n;i++) cin >> a[i].x >> a[i].v >> a[i].d;
double l = ,r = ;
for(int i = ;i <= ;i++)
{
double mid = (l+r)/;
if(ok(mid)) r = mid;
else l = mid;
}
cout << fixed << setprecision() << l << endl;
return ;
}

D.先假定一个根,每个询问分别计算3个点为f点时的ans,期间用到lca。

#include<bits/stdc++.h>
using namespace std; int n,q,dep[] = {},fa[][];
vector<int> v[]; void dfs(int now,int pre)
{
dep[now] = dep[pre]+;
for(int i = ;i < v[now].size();i++)
{
int t = v[now][i];
if(t == pre) continue;
fa[t][] = now;
dfs(t,now);
}
} int lca(int x,int y)
{
if(dep[x] < dep[y]) swap(x,y);
int t = dep[x]-dep[y];
for(int i = ;i <= ;i++)
{
if((<<i)&t) x = fa[x][i];
}
if(x == y) return x;
for(int i = ;i >= ;i--)
{
if(fa[x][i] != fa[y][i])
{
x = fa[x][i];
y = fa[y][i];
}
}
return fa[x][];
} int f(int x,int y,int z)
{
int xy = lca(x,y),xz = lca(x,z),yz = lca(y,z);
int ans = dep[x]-max(dep[xy],dep[xz])+;
if(xy == xz) ans += dep[yz]-dep[xy];
return ans;
} int main()
{
ios::sync_with_stdio();
cin >> n >> q;
for(int i = ;i <= n;i++)
{
int x;
cin >> x;
v[i].push_back(x);
v[x].push_back(i);
}
dfs(,);
for(int i = ;i <= ;i++)
{
for(int j = ;j <= n;j++)
{
fa[j][i] = fa[fa[j][i-]][i-];
}
}
while(q--)
{
int x,y,z;
cin >> x >> y >> z;
int ans1 = f(x,y,z);
int ans2 = f(y,x,z);
int ans3 = f(z,x,y);
cout << max(ans1,max(ans2,ans3)) << endl;
}
return ;
}

Codeforces_832的更多相关文章

随机推荐

  1. 1023 组个最小数 (20 分)C语言

    给定数字 0-9 各若干个.你可以以任意顺序排列这些数字,但必须全部使用.目标是使得最后得到的数尽可能小(注意 0 不能做首位).例如:给定两个 0,两个 1,三个 5,一个 8,我们得到的最小的数就 ...

  2. Java AOP的底层实现原理

    Java AOP的底层实现原理 一.什么是AOP 1.AOP:Aspect Oriented Programming(面向切面编程),OOP是面向对象编程,AOP是在OOP基础之上的一种更高级的设计思 ...

  3. DFT与IDFT

    [转]https://blog.csdn.net/mingzhuo_126/article/details/88044390 二.编程实现考滤到DFT和IDFT算法过程中有部分相似,可以把它们合成到一 ...

  4. EntityFramework Core一劳永逸动态加载模型,我们要知道些什么呢?

    前言 这篇文章源于一位问我的童鞋:在EntityFramework Core中如何动态加载模型呢?在学习EntityFramwork时关于这个问题已有对应园友给出答案,故没有过多研究,虽然最后解决了这 ...

  5. ThreadLocal = 本地线程?

    一.定义 ThreadLocal是JDK包提供的,从名字来看,ThreadLocal意思就是本地线程的意思. 1.1 是什么? 要想知道他是个啥,我们看看ThreadLocal的源码(基于JDK 1. ...

  6. C++Primer第五版 3.5.1节练习

    练习 3.27:假设txt_size是一个无参数的函数,它的返回值是int.请回答下列哪个定义是非法的?为什么? Unsigned buf_size = 1024; (a) int ia[buf_si ...

  7. JS的var和let的区别(详细讲解)

    let是ES6新增的,它主要是弥补var的缺陷,你也可以把let看做var的升级版.下面我就来详细讲讲var和let的区别 相同点: var和let都有函数级作用域 不同点: (1)var是全局作用域 ...

  8. Maven 基础(二) | 解决依赖冲突的正确姿势

    一.依赖原则 假设,在 JavaMavenService2 模块中,log4j 的版本是 1.2.7,在 JavaMavenService1 模块中,它虽然继承于 JavaMavenService2 ...

  9. 【UEFI】---关于BIOS,EIST和PState&CState和CPU主频变化得关系

    Intel处理器都支持Turbo和EIST,且一般情况下,各家厂商在BIOS中都会设置EIST和PState的开关,那么这些开关与CPU的频率的关系是什么呢?今天对此做个总结: 按照国际惯例,本次梳理 ...

  10. 剑指Offer对答如流系列 - 实现Singleton模式

    目录 面试题2:实现Singleton模式 一.懒汉式写法 二.饿汉式写法 三.枚举 面试题2:实现Singleton模式 题目:设计一个类,我们只能生成该类的一个实例. 由于设计模式在面向对象程序设 ...