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优步司机奖励政策(12月23日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- onenet基础通信套件加B300移植
1. 遇到的第一个问题,说是少了文件,但是明明有这个文件的啊? scons: warning: Ignoring missing SConscript 'build_scons\arm\Hi2115\ ...
- 关于iOS开发的各种证书
关于iOS开发的各种证书 最近在接推送服务的时候,被各种证书弄得不亦晕乎,这里记录一下一些基本的证书作用: 1. App IDs appID分明确的和通配的两种,如果要使用推送功能,只能用明确的. 2 ...
- 第一阶段·Linux运维基础-第2章·Linux系统目录结构介绍
01 变量与PS1 02 添加用户 03 关闭SELinux 04 关闭iptables 05 显示中文乱码排查过程 06 总结 07 目录结构课程内容 08 Linux目录结构特点 09 Linux ...
- Python 默认参数值
Python 默认参数值,对于一些函数来说,你可能为希望使一些参数可选并使用默认的值,以避免用户不想为他们提供值的情况.默认参数值可以有效帮助解决这一情况.你可以通过在函数定义时附加一个赋值运算符(= ...
- 卡片游戏 (Throwing card away I,UVa10935)
题目描述: 解题思路: 直接模拟 #include <iostream> using namespace std; ] ; int main(int argc, char *argv[]) ...
- CSP201612-1:中间数
引言:CSP(http://www.cspro.org/lead/application/ccf/login.jsp)是由中国计算机学会(CCF)发起的"计算机职业资格认证"考试, ...
- 基于物品的协同过滤算法(ItemCF)
最近在学习使用阿里云的推荐引擎时,在使用的过程中用到很多推荐算法,所以就研究了一下,这里主要介绍一种推荐算法—基于物品的协同过滤算法.ItemCF算法不是根据物品内容的属性计算物品之间的相似度,而是通 ...
- python函数学习之装饰器
装饰器 装饰器的本质是一个python函数,它的作用是在不对原函数做任何修改的同时,给函数添加一定的功能.装饰器的返回值也是一个函数对象. 分类: 1.不带参数的装饰器函数: def wrapper( ...
- scatter注记词
say illness thumb ginger brass atom twenty omit fine thought staff poverty