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. 1083 是否存在相等的差 (20 分)C语言

    给定 N 张卡片,正面分别写上 1.2.--.N,然后全部翻面,洗牌,在背面分别写上 1.2.--.N.将每张牌的正反两面数字相减(大减小),得到 N 个非负差值,其中是否存在相等的差? 输入格式: ...

  2. (httpd、php)

    (一)http协议介绍 http: 超文本传输协议,http协议是应用层协议,实现http协议的软件都监听的TCP的80端口之上.http协议也是一种文本协议,是基于TCP协议实现 http协议有几个 ...

  3. .Net Core 认证系统之基于Identity Server4 Token的JwtToken认证源码解析

    介绍JwtToken认证之前,必须要掌握.Net Core认证系统的核心原理,如果你还不了解,请参考.Net Core 认证组件源码解析,且必须对jwt有基本的了解,如果不知道,请百度.最重要的是你还 ...

  4. [推荐]icheck-bootstrap(漂亮的ckeckbox/radiobox)

    适用于Twitter Bootstrap框架的纯CSS样式的复选框/单选框按钮的插件. GitHub:https://github.com/bantikyan/icheck-bootstrap 如果你 ...

  5. spring boot通过@Bean注解定义一个Controller

    功能需求 提供一个公共的jar包给其他业务模块依赖,需要在这个公共的jar中暴露一个restful API 采用spring auto config机制,在公共jar包中定义spring.factor ...

  6. 《【面试突击】— Redis篇》--Redis都有哪些数据类型?分别在哪些场景下使用比较合适?

    能坚持别人不能坚持的,才能拥有别人不能拥有的.关注编程大道公众号,让我们一同坚持心中所想,一起成长!! <[面试突击]— Redis篇>--Redis都有哪些数据类型?分别在哪些场景下使用 ...

  7. 在浏览器窗口内移动的div

    ------------今天研究了一个最简单的屏保效果----------- 效果图如下:效果很神奇,就是这个div在浏览器窗口不断的灵活移动 代码却很简单 <!DOCTYPE html> ...

  8. Scala实践6

    1  if表达式 Scala中if...else..表达式是有返回值的,如果if和else返回值类型不一样,则返回Any类型. scala> val a3=10 a3: Int = 10 sca ...

  9. 使用docker增加部署速度的一次实践

    问题: 公司给我们分配的服务器到期后不付费了,换成新服务商的服务器了.也就是说我们之前的环境需要重新搭建一次.光项目就50多个(微服务40+,其他服务不到10个),需要重新部署. 之前部署项目时,需要 ...

  10. 字典树 (HDU 2072)

    lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数.下面你的任务是帮助xiaoou333解决这个问题. Input有多组数据,每组一行,每组就是 ...