Codeforces Round #379 (Div. 2) 解题报告
本次CF是在今天早上深夜进行,上午有课就没有直接参加。今天早上上课坐到后排参加了virtual participation。这次CF前面的题目都非常的水,不到10分钟就轻松过了前两题,比较郁闷的是之后一直卡在C,开始是脑残的没有用二分TLE,后来又是因为一个常数打错而一直WA……于是模拟赛就只过了2道题(太弱了orz)。时间到了后很快发现了脑残错误,终于A了C题。下午上完课回到宿舍看D题才发现D题水的不行,很快就A了。不过E和F就比较超出我现在知识范围了,暂时就先放下。第一次参加virtual participation,感觉这个模式真的是很赞,以后有时间一定要多多的参加训练自己。道阻且长,加油吧!
A题
这……就数一下A和D的个数,判断一下输出就可以了。没什么可说的。
#include <iostream>
#include <cstdio>
using namespace std;
char a[];
int n,m=,k=,i;
int main()
{
scanf("%d",&n);
scanf("%s",a);
for(i=;i<n;i++)
{
if(a[i]=='A')
m++;
else
k++;
}
if(m==k)
printf("Friendship\n");
else if(m>k)
printf("Anton\n");
else
printf("Danik\n");
return ;
}
B题
先尽可能组256,2、5、6个数的最小值即为可组成的256个数。2减去256个数后再取2、3个数最小值即为32个数最大值。这样相加即得到了最多的个数。
#include <iostream>
#include <cstdio>
using namespace std;
unsigned long long int a2,a3,a5,a6,he,de;
unsigned long long min3(unsigned long long int x,unsigned long long int y,unsigned long long int z)
{
if(x<y)
return min(x,z);
else
return min(y,z);
}
int main()
{
cin>>a2>>a3>>a5>>a6;
de=min3(a2,a5,a6);
a2-=de;a5-=de;
a6-=de;
he+=de*;
he+=min(a2,a3)*;
cout<<he;
}
C题
(TLE、WA了很久,捂脸つ﹏⊂……)对于第一种魔法就是for循环,逐个判断,其中循环的内部二分查找此时第二种魔法可行中最好的一个。找到对于每一个第一种魔法的第二种魔法最优选法。注意还要看只选第二种魔法的情况。全都比较一下就找到了耗时最短的办法。
#include <iostream>
#include <cstdio>
using namespace std;
unsigned long long int n,m,k,a[],b[],c[],d[],x,s,i,j,l,r,mid,an;
int main()
{
cin>>n>>m>>k;
cin>>x>>s;
for(i=;i<=m;i++)
cin>>a[i];
for(i=;i<=m;i++)
cin>>b[i];
for(i=;i<=k;i++)
cin>>c[i];
for(i=;i<=k;i++)
cin>>d[i];
b[]=c[]=d[]=;
a[]=x;
an=x*n;
for(i=;i<=m;i++)
{
if(a[i]>x||b[i]>s)
continue;
l=;r=k;
j=;
while(l<=r)
{
mid=(l+r)>>;
if(d[mid]+b[i]>s)
r=mid-;
else
{
l=mid+;
j=max(mid,j);
}
}
an=min(an,(n-c[j])*a[i]);
}
cout<<an;
return ;
}
D题
用a数组记录8个方向是否可行,b数组记录此时各个方向离目标点最近的点的距离。全都进行过判断后,再遍历一遍a数组看是否有方向满足即可。
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cmath>
using namespace std;
long long int a[],b[],si,sj,ti,tj,n,st,kind,di;
int dir[][]={{,,,,,,,},{,,,,,,,},{,,,,,,,}},i;
char c[];
int val(long int x,long long int y)
{
long long int d1,d2;
d1=x-si;
d2=y-sj;
if(d2==&&d1<)
return ;
else if(d1+d2==&&d2>)
return ;
else if(d1==&&d2>)
return ;
else if(d1>&&d1==d2)
return ;
else if(d1>&&d2==)
return ;
else if(d1>&&d1+d2==)
return ;
else if(d1==&&d2<)
return ;
else if(d1<&&d2==d1)
return ;
else return -;
}
int main()
{
memset(b,-,sizeof(b));
memset(a,,sizeof(a));
scanf("%I64d",&n);
scanf("%I64d%I64d",&si,&sj);
while(n--)
{
scanf("%s%I64d%I64d",c,&ti,&tj);
if(c[]=='Q')
kind=;
else if(c[]=='B')
kind=;
else kind=;
st=val(ti,tj);
if(st>-)
{
di=max(abs(ti-si),abs(tj-sj));
if(!dir[kind][st])
{
if(di<b[st]||b[st]<)
{b[st]=di;
a[st]=;
}
continue;
}
else{
if(di<b[st]||b[st]==-)
{
a[st]=;
b[st]=di;
}
}
}
else
{
continue;
}
}
for(i=;i<;i++)
{
if(a[i]==)
break;
}
if(i<)
printf("YES\n");
else printf("NO\n");
}
Codeforces Round #379 (Div. 2) 解题报告的更多相关文章
- Codeforces Round #324 (Div. 2)解题报告
---恢复内容开始--- Codeforces Round #324 (Div. 2) Problem A 题目大意:给二个数n.t,求一个n位数能够被t整除,存在多组解时输出任意一组,不存在时输出“ ...
- Codeforces Round #382 (Div. 2) 解题报告
CF一如既往在深夜举行,我也一如既往在周三上午的C++课上进行了virtual participation.这次div2的题目除了E题都水的一塌糊涂,参赛时的E题最后也没有几个参赛者AC,排名又成为了 ...
- Codeforces Round #380 (Div. 2) 解题报告
第一次全程参加的CF比赛(虽然过了D题之后就开始干别的去了),人生第一次codeforces上分--(或许之前的比赛如果都参加全程也不会那么惨吧),终于回到了specialist的行列,感动~.虽然最 ...
- Codeforces Round #216 (Div. 2)解题报告
又范低级错误! 只做了两题!一道还被HACK了,囧! A:看了很久!应该是到语文题: 代码:#include<iostream> #include<]; ,m2=; ;i ...
- Codeforces Round #281 (Div. 2) 解题报告
题目地址:http://codeforces.com/contest/493 A题 写完后就交了,然后WA了,又读了一遍题,没找出错误后就开始搞B题了,后来回头重做的时候才发现,球员被红牌罚下场后还可 ...
- Codeforces Round #277 (Div. 2) 解题报告
题目地址:http://codeforces.com/contest/486 A题.Calculating Function 奇偶性判断,简单推导公式. #include<cstdio> ...
- Codeforces Round #276 (Div. 2) 解题报告
题目地址:http://codeforces.com/contest/485 A题.Factory 模拟.判断是否出现循环,如果出现,肯定不可能. 代码: #include<cstdio> ...
- Codeforces Round #350 (Div. 2)解题报告
codeforces 670A. Holidays 题目链接: http://codeforces.com/contest/670/problem/A 题意: A. Holidays On the p ...
- Codeforces Round #479 (Div. 3)解题报告
题目链接: http://codeforces.com/contest/977 A. Wrong Subtraction 题意 给定一个数x,求n次操作输出.操作规则:10的倍数则除10,否则减1 直 ...
随机推荐
- android user版本默认开启调试模式
由于项目需要,需要发布版本默认开启调试模式,修改方式如下: 1.开启开发者模式 context.getSharedPreferences(DevelopmentSettings.PREF_FILE,C ...
- 关于ifram之间的相互调用
window.iframeId.btnClose.click(); 父调子 window.parent.FatherFunciton(); 子调父
- Swashbuckle for asp.net core 配置说明
0x00 安装 Swashbuckle 6.0 打开程序包管理器控制台,输入: Install-Package Swashbuckle -Pre 0x01 配置 Startup.cs public v ...
- JSON上
关于JSON部分: 目录: 一:定义二:实例三:JSON的语法 一:什么是JSON? 1.JSON:JavaScript 对象表示法(JavaScript Object Notation). 2.JS ...
- log4j.properties的配置
#初始化类中要使用的Logger对象实例:log4j.rootLogger = [ level ] , appenderName1, appenderName2, … #第一个参数是日志级别(DEBU ...
- CentOS install GCC-4.8.5
1. 下载源码:http://ftp.gnu.org/gnu/gcc 2. cd gcc-4.8.5 ./contrib/download_prerequisites //下载资源包 3. ...
- ShareSDK第三方登录代码
- (IBAction)YYSJBut:(UIButton *)sender{ if (sender.tag == 7) { [self AuthLogin:SSDKPlat ...
- iOS开发数据库篇—SQL
iOS开发数据库篇—SQL 一.SQL语句 如果要在程序运行过程中操作数据库中的数据,那得先学会使用SQL语句 1.什么是SQL SQL(structured query language):结构化查 ...
- 【转】IP分片和TCP分段
ZC: 由于 TCP中 MSS 的关系,TCP 不会造成 IP分片和TCP分段 ! 1.http://zhidao.baidu.com/link?url=YCnR8B-1EN4-cgauRtwa-iV ...
- java complier compliance level问题引发的思考
http://blog.csdn.net/shan9liang/article/details/17266519 ******************************************* ...