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 ...
随机推荐
- 201621123050 《Java程序设计》第14周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结与数据库相关内容. 2. 使用数据库技术改造你的系统 2.1 简述如何使用数据库技术改造你的系统.要建立什么表?截图你的表设计. 答 ...
- Android实验报告
实验名称:Android程序设计 实验时间:2017.5.24 实验人员:20162309邢天岳(结对同学20162313苑洪铭) 实验目的:使用android stuidio开发工具进行基本安卓软件 ...
- 清华集训2015 V
#164. [清华集训2015]V http://uoj.ac/problem/164 统计 描述 提交 自定义测试 Picks博士观察完金星凌日后,设计了一个复杂的电阻器.为了简化题目,题目中的常数 ...
- python之路--day10-闭包函数
1.命名关键字参数 格式:在*后面的参数都是命名关键字参数 特点: 1.必须被传值 2.约束函数的调用者必须按照key=value的形式传值 3.约束函数的调用者必须用我们指定的key名 def au ...
- mysql数据库的三范式的设计与理解
一般的数据库设计都需要满足三范式,这是最基本的要求的,最高达到6NF,但是一般情况下3NF达到了就可以 一:1NF一范式的理解: 1NF是关系型数据库中的最基本要求,就是要求记录的属性是原子性,不可分 ...
- Python内置函数(2)——divmod
英文文档: divmod(a, b) Take two (non complex) numbers as arguments and return a pair of numbers consisti ...
- Mego开发文档 - 建模高级主题
建模高级主题 在建模过程中我们还有许多其他情况,这里列出本框架中的有用特性来用于解决此类问题. 函数映射 我们可以将指定的CLR函数映射到数据库中的系统函数或自定义函数,该特性用于补充框架中未提供的数 ...
- Linux下的Shell编程(1)最简单的例子
深入地了解和熟练地掌握Shell编程,是每一个Linux用户的必修 功课之一. 从第一行开始 我们可以使用任意一种文字编辑器编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #!/bi ...
- js基本包装类型和引用类型
回顾 1.什么是基本类型? 共5个.boolean,string,number,null,undefined. 2.什么是引用类型? 引用类型的值是对象,保存在堆内存中: 引用类型的变量实际上是一个指 ...
- 表单中各种input汇总
html表单 表单用于搜集不同类型的用户输入,表单由不同类型的标签组成,相关标签及属性用法如下: 1.<form>标签 定义整体的表单区域 action属性 定义表单数据提交地址 meth ...