Mail.Ru Cup 2018 Round 1 virtual participate记
因为睡过了只好vp。
A:阅读理解。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define N
int x,y,z,t1,t2,t3;
int main()
{
cin>>x>>y>>z>>t1>>t2>>t3;
if (abs(y-x)*t1>=t3*+t2*(abs(x-z)+abs(y-x))) cout<<"YES";
else cout<<"NO";
return ;
}
B:一个数可以作为mex当且仅当所有比它小的自然数都已出现。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define N 100010
int n,a[N],mx;
int main()
{
n=read();
for (int i=;i<=n;i++) a[i]=read();
mx=-;
for (int i=;i<=n;i++)
{
if (a[i]>mx+) {cout<<i;return ;}
mx=max(mx,a[i]);
}
cout<<-;
return ;
}
C:li=ri=0的人一定是最大值,给他们记录答案后将其去掉并更新其他人的li和ri即可。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define N 1010
int n,a[N],b[N],ans[N],cnt=;
int main()
{
n=read();
for (int i=;i<=n;i++) a[i]=read();
for (int i=;i<=n;i++) b[i]=read();
for (int i=;i<=n;i++)
{
bool flag=;
for (int j=;j<=n;j++)
if (a[j]==&&b[j]==) flag=,cnt++,ans[j]=n-i+,a[j]=b[j]=n+;
if (!flag) {cout<<"NO";return ;}
if (cnt==n) break;
int tot=;
for (int j=;j<=n;j++)
if (a[j]==n+&&b[j]==n+) tot++;
else if (a[j]<tot) {cout<<"NO";return ;}
else a[j]-=tot;
tot=;
for (int j=n;j>=;j--)
if (a[j]==n+&&b[j]==n+) tot++;
else if (b[j]<tot) {cout<<"NO";return ;}
else b[j]-=tot;
for (int j=;j<=n;j++)
if (a[j]==n+&&b[j]==n+) a[j]=b[j]=n+;
}
cout<<"YES\n";
for (int i=;i<=n;i++) cout<<ans[i]<<' ';
return ;
}
D:注意到对某个位置的数取反会使所有包含他的区间的异或和取反。区间异或和显然可以转化为两个前缀的异或和。这样就可以发现我们对于每一个前缀和都可以任意决定是否取反了。花了1h没救了。
#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<algorithm>
#include<map>
using namespace std;
int read()
{
int x=,f=;char c=getchar();
while (c<''||c>'') {if (c=='-') f=-;c=getchar();}
while (c>=''&&c<='') x=(x<<)+(x<<)+(c^),c=getchar();
return x*f;
}
#define N 200010
int n,m,a[N];
map<int,int> f;
long long ans;
int main()
{
n=read(),m=read();f[]++;
for (int i=;i<=n;i++)
{
a[i]=a[i-]^read();
if (a[i]<(<<m-)) f[a[i]]++;
else f[((<<m)-)^a[i]]++;
}
for (int i=;i<=n;i++) if (a[i]>=(<<m-)) a[i]^=((<<m)-);
ans=1ll*n*(n+)>>;
sort(a,a+n+);int t=unique(a,a+n+)-a-;
for (int i=;i<=t;i++)
{
int x=f[a[i]],p=x/,q=(x+)/;
ans-=1ll*p*(p-)/,ans-=1ll*q*(q-)/;
}
cout<<ans;
return ;
}
result:rank 426
Mail.Ru Cup 2018 Round 1 virtual participate记的更多相关文章
- Mail.Ru Cup 2018 Round 3 B. Divide Candies
题目链接 分析一下题意可以得到题目要求的是满足下面这个 公式的不同的i,ji,ji,j的方案数; 即(i2+j2)mod   m=0 (n ≤ ...
- Mail.Ru Cup 2018 Round 3
A:签到 #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> # ...
- Mail.Ru Cup 2018 Round 2
A:阅读理解. #include<iostream> #include<cstdio> #include<cmath> #include<cstdlib> ...
- [codeforces Mail.Ru Cup 2018 Round 3][B Divide Candies ][思维+数学]
https://codeforces.com/contest/1056/problem/B 题意:输入n,m 求((a*a)+(b*b))%m==0的(a,b)种数(1<=a,b<= ...
- [codeforces Mail.Ru Cup 2018 Round 1 D][ xor 操作]
http://codeforces.com/contest/1054/problem/D 题目大意:一个序列a1 a2...an,可以对若干个元素进行取反,使所得的新序列异或和为0的区间个数最多. 题 ...
- Mail.Ru Cup 2018 Round 2 Solution
A. Metro Solved. 题意: 有两条铁轨,都是单向的,一条是从左往右,一条是从右往左,Bob要从第一条轨道的第一个位置出发,Alice的位置处于第s个位置,有火车会行驶在铁轨上,一共有n个 ...
- Mail.Ru Cup 2018 Round 3 Solution
A. Determine Line Water. #include <bits/stdc++.h> using namespace std; ]; int main() { while ( ...
- Mail.Ru Cup 2018 Round 1
A. Elevator or Stairs? 签. #include <bits/stdc++.h> using namespace std; ]; int main() { while ...
- Mail.Ru Cup 2018 Round 2C(__gcd)
#include<bits/stdc++.h>using namespace std;long long mx(long long l1,long long r1,long long l2 ...
随机推荐
- 北京Uber优步司机奖励政策(2月27日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- php输出带尖括号的内容
有这样的数组 $arr = array( 'facebook' => 'facebook', '<facebook>' => '<facebook>', ); 输出 ...
- ReadyAPI创建功能测试的方法
声明:如果你想转载,请标明本篇博客的链接,请多多尊重原创,谢谢! 本篇使用的 ReadyAPI版本是2.5.0 在ReadyAPI中有多种方法可以创建功能测试,本篇将分步操作创建功能测试. 1.从So ...
- TPO-15 C1 The campus newspaper's reporter position
TPO-15 C1 The campus newspaper's reporter position 第 1 段 1.Listen to a conversation between a Studen ...
- UniMelb Comp30022 IT Project (Capstone) - 1.Android入门
1. Android入门 Android系统架构 Android系统:四层架构.五块区域 1. Linux内核层 Linux Kernel:为Android设备的硬件提供了底层驱动 2. 系统运行库层 ...
- [CodeForce455A]Boredom
题面描述 Alex doesn't like boredom. That's why whenever he gets bored, he comes up with games. One long ...
- 搭建hexo博客并部署到github上
hexo是由Node.js驱动的一款快速.简单且功能强大的博客框架,支持多线程,数百篇文章只需几秒即可生成.支持markdown编写文章,可以方便的生成静态网页托管在github上. 感觉不错. 前端 ...
- 子序列 (All in All,UVa10340)
题目描述:算法竞赛入门经典习题3-9 题目思路:循环匹配 //没有按照原题的输入输出 #include <stdio.h> #include <string.h> #defin ...
- Windows10安装GPU版本的Tensorflow
本人电脑配置(公司的)gtx1080ti,下载的的cuda8.0,cudnn6.0,python3.5.3安装完成后,安装tensorflow 1.pip install tensorflow-gpu ...
- python 文件编译成exe可执行文件。
pyinstaller打包方法: pyinstaller安装参考地址:http://www.pyinstaller.org/ pywin32的下载地址:https://sourceforge.net/ ...