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 ...
随机推荐
- Java 密码学算法
Java 密码学算法 候捷老师在< 深入浅出MFC 2e(电子版)>中引用林语堂先生的一句话: 只用一样东西,不明白它的道理,实在不高明 只知道How,不知道Why,出了一点小问题时就无能 ...
- Json转model对象,model转json,解析json字符串
GitHub链接: https://github.com/mozhenhau/D3Json D3Json 通过swift的反射特性,把json数据转换为model对象,本类最主要是解决了其他一般jso ...
- 【审核】检查iOS项目中是否使用了IDFA
(1)什么是IDFA 关于IDFA,在提交应用到App Store时,iTunes Connect有如下说明: 这里说到检查项目中是否包含IDFA,那如何来对iOS项目(包括第三方SDK)检查是否包含 ...
- 利用flask 实现简单模版站
from flask import Flask,render_template from flask import request app = Flask(__name__) @app.route(' ...
- java 二维码解析和生成
package ykxw.web.qrcode.utils; import java.awt.Color; import java.awt.Graphics2D; import java.awt.im ...
- 老板怎么办,我们网站遭到DDoS攻击又挂了?
相信现在正在阅读此文的你,一定听说过发生在上个月的史上最大的DDoS攻击. 美国东部时间2月28日,GitHub在一瞬间遭到高达1.35Tbps的带宽攻击.这次DDoS攻击几乎可以堪称是互联网有史以来 ...
- es6对象字面量增强
相对于ES5,ES6的对象字面量得到了很大程度的增强.这些改进我们可以输入更少的代码同时语法更易于理解.那就一起来看看对象增强的功能.对象字面量简写(Object Literal Shorthand) ...
- PHP截取日期
date( 'Y-m-d ',strtotime('2017-10-9 12:23:35')) 通过时间格式,获取的是2017-10-9
- 新概念英语(1-107)It's Too Small.
Lesson 107 It's too small. 太小了. Listen to the tape then answer this question. What kind of dress doe ...
- python实现排序算法 时间复杂度、稳定性分析 冒泡排序、选择排序、插入排序、希尔排序
说到排序算法,就不得不提时间复杂度和稳定性! 其实一直对稳定性不是很理解,今天研究python实现排序算法的时候突然有了新的体会,一定要记录下来 稳定性: 稳定性指的是 当排序碰到两个相等数的时候,他 ...