Codeforces Round #407 (Div. 1)
人傻不会B 写了C正解结果因为数组开小最后RE了 疯狂掉分
AC:A Rank:392 Rating: 2191-92->2099
A. Functions again
题目大意:给定一个长度为n的数组,求最大的
,其中1<=l<r<=n。(n<=10^5)
思路:按左端点所在位置的奇偶性分开计算即可。
#include<cstdio>
#include<algorithm>
using namespace std;
#define ll long long
char B[<<],*S=B,C;int X,F;
inline int read()
{
for(F=;(C=*S++)<''||C>'';)if(C=='-')F=-;
for(X=C-'';(C=*S++)>=''&&C<='';)X=(X<<)+(X<<)+C-'';
return X*F;
}
#define MN 200000
int a[MN+];
ll s[MN+];
int main()
{
fread(B,,<<,stdin);
int n=read(),i,p;long long mx=,mn;
for(i=;i<=n;++i)a[i]=read();
for(mn=,i=p=;i<n;++i,p*=-)
{
s[i]=s[i-]+abs(a[i+]-a[i])*p;
mx=max(mx,s[i]-mn);
if(~i&)mn=min(mn,s[i]);
}
for(mn=,i=,p=-;i<n;++i,p*=-)
{
s[i]=s[i-]+abs(a[i+]-a[i])*p;
mx=max(mx,s[i]-mn);
if(i&)mn=min(mn,s[i]);
}
printf("%I64d",mx);
}
B. Weird journey
题目大意:给定一张n个点m条边的无向图,无重边,有自环,问有多少对边满足有路径有且只经过这两条边一次,且经过其他m-2条边两次。(n,m<=10^6)
思路:分类讨论+大判断。先判连通性,答案为相邻的非自环边对数+自环边数*非自环边数+自环边对数。
#include<cstdio>
char B[<<],*S=B,C;int X;
inline int read()
{
while((C=*S++)<''||C>'');
for(X=C-'';(C=*S++)>=''&&C<='';)X=(X<<)+(X<<)+C-'';
return X;
}
#define MN 1000000
int f[MN+],r[MN+],u[MN+];
int gf(int k){return f[k]?f[k]=gf(f[k]):k;}
int main()
{
fread(B,,<<,stdin);
int n,m,x,y,i,cnt=,s=;long long ans=;
n=read();m=read();
for(i=;i<=m;++i)
{
x=read();y=read();
if(x==y)++s,u[x]=;
else ++r[x],++r[y];
if(gf(x)!=gf(y))++cnt,f[gf(x)]=gf(y);
}
for(i=;i<=n;++i)if(!u[i]&&!r[i])++cnt;
if(cnt<n)return *puts("");
for(i=;i<=n;++i)ans+=1LL*r[i]*(r[i]-)>>;
ans+=1LL*s*(m-s)+(1LL*s*(s-)>>);
printf("%I64d",ans);
}
C. The Great Mixing
题目大意:k种可乐,每种浓度为ai/1000,每种取出任意自然数份混合在一起,问混合出浓度为n/1000的可乐至少要几份。(0<=n,ai<=1000,k<=10^6)
思路:先把所有ai减去n,问题转化为选出的和为0至少选几个,如果都小于0或都大于0则无解,否则容易证明答案至多为O(n)(若ai<0,aj>0,则ai*aj+aj*(-ai)=0),bfs搜出和为x至少要几步,可以很快算出答案。
#include<cstdio>
char B[<<],*S=B,C;int X;
inline int read()
{
while((C=*S++)<''||C>'');
for(X=C-'';(C=*S++)>=''&&C<='';)X=(X<<)+(X<<)+C-'';
return X;
}
#define MN 1000
#define MX 1000000
int u[MN*+],t[MN+],tn,d[MX*+],q[MX*+],qn;
int main()
{
fread(B,,<<,stdin);
int n,k,i,j,x,o1=,o2=;
n=read();k=read();
for(i=;i<=k;++i)
{
if(!(x=read()-n))return *puts("");
if(x<)o1=;
if(x>)o2=;
if(!u[x+MN])u[x+MN]=,t[++tn]=x;
}
if(o1||o2)return *puts("-1");
for(i=;i<=tn;++i)d[q[++qn]=t[i]+MX]=;
for(i=;i<=qn;++i)
{
if(q[i]==MX)return *printf("%d",d[MX]);
for(j=;j<=tn;++j)
{
x=q[i]+t[j];
if(x<||x>MX*||d[x])continue;
d[q[++qn]=x]=d[q[i]]+;
}
}
}
Codeforces Round #407 (Div. 1)的更多相关文章
- Codeforces Round #407 (Div. 1) B. Weird journey —— dfs + 图
题目链接:http://codeforces.com/problemset/problem/788/B B. Weird journey time limit per test 2 seconds m ...
- Codeforces Round #407 (Div. 2)
来自FallDream的博客,未经允许,请勿转载,谢谢. ------------------------------------------------------ A.Anastasia and ...
- Codeforces Round #407 (Div. 2)A B C 水 暴力 最大子序列和
A. Anastasia and pebbles time limit per test 1 second memory limit per test 256 megabytes input stan ...
- Codeforces Round #407 (Div. 2) D,E
图论 D. Weird journey time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- Codeforces Round #407 (Div. 2) D. Weird journey(欧拉路)
D. Weird journey time limit per test 2 seconds memory limit per test 256 megabytes input standard in ...
- 【分类讨论】Codeforces Round #407 (Div. 2) D. Weird journey
考虑这个二元组中有一者是自环,则必然合法. 考虑这两条边都不是自环,如果它们不相邻,则不合法,否则合法. 坑的情况是,如果它是一张完整的图+一些离散的点,则会有解,不要因为图不连通,就误判成无解. # ...
- 【预处理】Codeforces Round #407 (Div. 2) C. Functions again
考虑枚举每个子串开头的位置,然后答案转化成询问这个位置之后 哪个位置的前缀和 - 这位置的前缀和 最大(当然是已经把绝对值和正负的情况处理好了,可以发现按奇偶,这个序列只有两种情况),只需要预处理这两 ...
- 【分类讨论】【set】Codeforces Round #407 (Div. 2) B. Masha and geometric depression
模拟一下那个过程,直到绝对值超过l,或者出现循环为止. 如果结束之后,绝对值是超过l的,就输出当前写在黑板上的数量. 如果出现循环,则如果写在黑板上的数量非零,则输出inf(注意!如果陷入的循环是一个 ...
- 【贪心】Codeforces Round #407 (Div. 2) A. Anastasia and pebbles
贪心地一个一个尽可能往口袋里放,容易发现和顺序无关. #include<cstdio> #include<iostream> using namespace std; type ...
随机推荐
- python的迭代器、生成器、装饰器
迭代器.生成器.装饰器 在这个实验里我们学习迭代器.生成器.装饰器有关知识. 知识点 迭代器 生成器 生成器表达式 闭包 装饰器 实验步骤 1. 迭代器 Python 迭代器(Iterators)对象 ...
- 【iOS】swift 让程序挂起后,能在后台继续运行任务
1,程序的挂起和退出 由于iOS设备资源有限.当用户点击了home键,或者另一个应用程序启动了.那么原先那个程序便进入后台被挂起,不是退出,只是停止执行代码,同时它的内存被锁定.当应用程序恢复时,它会 ...
- UWP 页面间传递参数(常见类型string、int以及自定义类型)
这是一篇很基础的,大佬就不要看了,也不要喷,谢谢
- python全栈开发-Day13 内置函数
一.内置函数 注意:内置函数id()可以返回一个对象的身份,返回值为整数. 这个整数通常对应与该对象在内存中的位置,但这与python的具体实现有关,不应该作为对身份的定义,即不够精准,最精准的还是以 ...
- raid5 阵列硬盘离线数据恢复成功案例
数据恢复故障描述: 某研究院 DELL 磁盘阵列崩溃,内置15块1TB硬盘搭建的RAID5阵列.一开始有一块硬盘离线,在更换新硬盘进行同步的过程中,第二块磁盘指示灯报警,同步失败,阵列无法正常工作. ...
- django三种文件下载方式
一.概述 在实际的项目中很多时候需要用到下载功能,如导excel.pdf或者文件下载,当然你可以使用web服务自己搭建可以用于下载的资源服务器,如nginx,这里我们主要介绍django中的文件下载. ...
- angular路由守卫
路由守卫是指当用户满足了某些要求之后才可以离开或者进入某个页面或者场景的时候使用.比如说只有当用户填写了用户名和密码之后才可以进入首页,比如说用户离开某个页面时明月保存信息提示用户是否保存信息后再离 ...
- python RE模块的使用
摘要: re模块包括操作正则表达式的函数,一些工作中都需要用到,现在说明下使用方法. 使用说明: 一,re模块下的函数: 函数 描述 compile(pa ...
- idea 找不到classpath 为resource下的xml
注入时不能自动找到在src/main/resources下的xml. @ContextConfiguration(locations = { "classpath:applicationCo ...
- cv2.cornerHarris()详解 python+OpenCV 中的 Harris 角点检测
参考文献----------OpenCV-Python-Toturial-中文版.pdf 参考博客----------http://www.bubuko.com/infodetail-2498014. ...