题目地址

本次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) 解题报告的更多相关文章

  1. Codeforces Round #324 (Div. 2)解题报告

    ---恢复内容开始--- Codeforces Round #324 (Div. 2) Problem A 题目大意:给二个数n.t,求一个n位数能够被t整除,存在多组解时输出任意一组,不存在时输出“ ...

  2. Codeforces Round #382 (Div. 2) 解题报告

    CF一如既往在深夜举行,我也一如既往在周三上午的C++课上进行了virtual participation.这次div2的题目除了E题都水的一塌糊涂,参赛时的E题最后也没有几个参赛者AC,排名又成为了 ...

  3. Codeforces Round #380 (Div. 2) 解题报告

    第一次全程参加的CF比赛(虽然过了D题之后就开始干别的去了),人生第一次codeforces上分--(或许之前的比赛如果都参加全程也不会那么惨吧),终于回到了specialist的行列,感动~.虽然最 ...

  4. Codeforces Round #216 (Div. 2)解题报告

    又范低级错误! 只做了两题!一道还被HACK了,囧! A:看了很久!应该是到语文题: 代码:#include<iostream> #include<];    ,m2=;    ;i ...

  5. Codeforces Round #281 (Div. 2) 解题报告

    题目地址:http://codeforces.com/contest/493 A题 写完后就交了,然后WA了,又读了一遍题,没找出错误后就开始搞B题了,后来回头重做的时候才发现,球员被红牌罚下场后还可 ...

  6. Codeforces Round #277 (Div. 2) 解题报告

    题目地址:http://codeforces.com/contest/486 A题.Calculating Function 奇偶性判断,简单推导公式. #include<cstdio> ...

  7. Codeforces Round #276 (Div. 2) 解题报告

    题目地址:http://codeforces.com/contest/485 A题.Factory 模拟.判断是否出现循环,如果出现,肯定不可能. 代码: #include<cstdio> ...

  8. Codeforces Round #350 (Div. 2)解题报告

    codeforces 670A. Holidays 题目链接: http://codeforces.com/contest/670/problem/A 题意: A. Holidays On the p ...

  9. Codeforces Round #479 (Div. 3)解题报告

    题目链接: http://codeforces.com/contest/977 A. Wrong Subtraction 题意 给定一个数x,求n次操作输出.操作规则:10的倍数则除10,否则减1 直 ...

随机推荐

  1. 图片按钮来代替文件上传控件(Freemaker,JQuery,HTML,CSS,JavaScript)

    CSS样式: <style type="text/css"> .fileInputContainer{ height:70px; width:95px; positio ...

  2. ThinkPHP讲解(十二)——文本编辑器和ajax传址

    一.文本编辑器 1.首先,在网上下载ueditor文件 2.在要添加文本编辑器的页面中引用ueditor文件中的js文件 <script type="text/javascript&q ...

  3. uber 真是垃圾

    uber司机好几次都不认识路,态度也不好,最开始使用是因为它价格最便宜,随着滴滴/快的价格下调,已经没有再使用uber的必要,果断卸载.

  4. Linux 多线程编程 实例 2

    编写一个程序,开启3个线程,这3个线程的ID分别为A.B.C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示:如:ABCABC….依次递推. 使用条件变量来实现: #inc ...

  5. CentOS7安装Apache2.4+PHP5.6

    linux系统CentOS7 先下载Apache需要依赖的软件 1.APR 下载地址http://apr.apache.org/download.cgi wget下载路径http://mirror.b ...

  6. linux初始化配置---主机名、关闭防火墙、关闭selinux

    一.修改主机名 1.零时修改 [root@localhost network-scripts]# hostname jw07 然后就可以看到我们的主机名被修改了

  7. Android自定义View (二) 进阶

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/24300125 继续自定义View之旅,前面已经介绍过一个自定义View的基础的例 ...

  8. 皇后(queen)

    皇后(queen)[题目描述] 众所不知,rly现在不会玩国际象棋.但是,作为一个OIer,rly当然做过八皇后问题.这里再啰嗦几句,皇后可以攻击到同行同列同对角线,在n*n的方格中摆n个皇后使其互不 ...

  9. lambda的使用ret = filter(lambda x : x > 22 ,[11,22,33,44])

    #!/usr/bin/env python #def f1(x) : # return x > 22 ret = filter(lambda x : x > 22 ,[11,22,33,4 ...

  10. 怎样让webservice在浏览器远程浏览时像在本地浏览一样有参数输入框

    从远程客户端访问服务器上的WebService能够显示,但点击调用相关的方法时显示“只能用于来自本地计算机的请求”,这时提醒我们还需要在服务器进行相关的配置才能让其他机器正常访问该WebService ...