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. 小小知识点(三十)集中式大规模和无小区大规模MIMO

    集中式大规模MIMO 同一小区的所有接入点( access point,AP) 布置在同一个基站( base station,BS) 中,并且 AP 之间的间距非常小,这种布置方式称为集中式大规模MI ...

  2. 推荐中的多任务学习-YouTube视频推荐

    本文将介绍Google发表在RecSys'19 的论文<Recommending What Video to Watch Next: A Multitask Ranking System> ...

  3. Jmeter基础学习-下载及安装

    1. Jmeter下载路径:http://jmeter.apache.org/download_jmeter.cgi 进入Jmeter下载界面后英语不好+技术不灵的同学会蒙圈,下载那个呢? *Bina ...

  4. 2019牛客暑期多校第五场题解ABGH

    A.digits 2 传送门 题意:给你一个n,要求输出一个每一位数字之和能整除n且其本身也能整除n的数.n不超过100,要求的数不超过10000位数. 题解:直接将n输出n次. 代码: #inclu ...

  5. 【转】21个免费的UI界面设计工具、资源及网站

    本文将介绍21个免费的UI界面设计工具.资源及网站,如果你在做用户体验设计.界面设计.产品设计.JS前段开发.手机产品设计以及iPad和平板电脑产品设计,不妨来看看. AD: 2013云计算架构师峰会 ...

  6. ElasticSearch安装中文分词器IKAnalyzer

    # ElasticSearch安装中文分词器IKAnalyzer  本篇主要讲解如何在ElasticSearch中安装中文分词器IKAnalyzer,拆分的每个词都是我们熟知的词语,从而建立词汇与文档 ...

  7. txLive模块(直播类)试用分享

    本文出自APICloud官方论坛, 感谢论坛版主uoaccw的分享. txLive 模块封装了腾讯云直播服务 https://docs.apicloud.com/Client-API/Open-SDK ...

  8. P2365 任务安排 batch 动态规划

    batch ★☆   输入文件:batch.in   输出文件:batch.out   简单对比时间限制:1 s   内存限制:128 MB 题目描述 N个任务排成一个序列在一台机器上等待完成(顺序不 ...

  9. 矩形内的递推dp

    链接:https://www.nowcoder.com/acm/contest/130/B来源:牛客网 黑妹和黑弟又聚在一起玩游戏了,这次他们选择在一个n*m的棋盘上玩游戏,棋盘上的每个方格都有一个非 ...

  10. Redux 一步到位

    简介 Redux 是 JavaScript 状态容器,提供可预测化的状态管理 Redux 除了和 React 一起用外,还支持其它库( jquery ... ) 它体小精悍(只有2kB,包括依赖) 由 ...