Codeforces_832
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的更多相关文章
随机推荐
- matplotlib绘制符合论文要求的图片
最近需要将实验数据画图出来,由于使用python进行实验,自然使用到了matplotlib来作图. 下面的代码可以作为画图的模板代码,代码中有详细注释,可根据需要进行更改. # -*- coding: ...
- Spring 加定时器
定时器功能我们一般不常用, 但是一旦用到,那也是非常重要的, 今天我们就讲一下如何简单快速的使用定时器 第一种方法, 使用注解的方式完成定时器 1.在spring-servlet.xml文件中加入ta ...
- C# Post发送 接受Xml
//组合xml内容 StringBuilder strBuilder = new StringBuilder(); var par= @"<xml> <appid>w ...
- js 鼠标位置
1.clientX.clientY 光标位置——>距离当前body可视区域的x,y坐标 2.pageX.pageY 光标位置——> 对于整个页面来说,包括了被卷去的body ...
- 【转】.NET 在云原生时代的蜕变,让我在云时代脱颖而出
原创:张善友 原文:https://www.cnblogs.com/shanyou/p/12198741.html .NET 生态系统是一个不断变化的生态圈,我相信它正在朝着一个伟大的方向发展.有了开 ...
- 使用远程接口库进一步扩展Robot Framework的测试能力
引言: Robot Framework的四层结构已经极大的提高了它的扩展性.我们可以使用它丰富的扩展库来完成大部分测试工作.可是碰到下面两种情况,仅靠四层结构就不好使了: 1.有些复杂的测试可能跨越多 ...
- 真机调试报The executable was signed with invalid entitlements.错误
真机运行时,提示The executable was signed with invalid entitlements.(The entitlements specified in your appl ...
- C#图片采集软件 自动翻页 自动分类(收集美图必备工具)(一)
网站管理员希望将别人的整站数据下载到自己的网站里或者将别人网站的一些内容保存到自己的服务器上.从内容中抽取相关的字段,发布到自己的网站系统中.有时需要将网页相关的文件也保存到本地,如图片.附件等. 图 ...
- Redis(六):list/lpush/lrange/lpop 命令源码解析
上一篇讲了hash数据类型的相关实现方法,没有茅塞顿开也至少知道redis如何搞事情的了吧. 本篇咱们继续来看redis中的数据类型的实现: list 相关操作实现. 同样,我们以使用者的角度,开始理 ...
- Docker在树莓派的安装与使用(Ubuntu Arm Server v19.10)
最近由于冠状病毒疫情的原因,只能够和小朋友家里蹲.这几天把尘封已久的那个树莓派拿出来继续捣鼓.希望能够做一个异构的分布式系统框架,于是想把Docker也安装到树莓派上,以便后期做进一步的开发和实验. ...