题目地址

本次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. android-eclipse-phonegap 2..9以下(包含2.9)的项目配置

    1.搭建android.eclipse环境,下载phonegap 2.9包 2.新建android项目 3.拷贝phonegap-2.9.0\lib\android\cordova-2.9.0.jar ...

  2. 关于学习Knockoutjs--入门(二)

    这两天终于闲一丢丢了,可以有多点时间学习一下拉.接下来要写到的还是Knockoutjs. Knockout是建立在以下3个核心功能之上的: 1. 属性监控与依赖跟踪 2. 声明式绑定 3. 模版机制 ...

  3. Markdown--PDF--PPT--Flash 工具链

    markdown->html Haroopad / sublime->pdf chrome ctrl+p 打印成无边框pdf->ppt PDF to PowerPoint Conve ...

  4. HTML5 UI框架Kendo UI Web中如何创建自定义组件(二)

    在前面的文章<HTML5 UI框架Kendo UI Web自定义组件(一)>中,对在Kendo UI Web中如何创建自定义组件作出了一些基础讲解,下面将继续前面的内容. 使用一个数据源 ...

  5. 仿souhu页面设计

    仿搜狐页面设计 Html页面设计代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> ...

  6. 2016年12月25日 星期日 --出埃及记 Exodus 21:20

    2016年12月25日 星期日 --出埃及记 Exodus 21:20 "If a man beats his male or female slave with a rod and the ...

  7. Reflection

    Reflection 反射能在运行时获取一个类的全部信息,并且可以调用类方法,修改类属性,创建类实例. 而在编译期间不用关心对象是谁 反射可用在动态代理,注解解释,和反射工厂等地方. -------- ...

  8. c++ ado 调用存储过程并得到输出参数和返回值

    // AccessSqlserverByAdo.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <Windows.h ...

  9. Cheatsheet: 2015 10.01 ~ 10.31

    .NET Publishing your ASP.NET App to Linux in 5 minutes with Docker Integrating AngularJS with ASP.NE ...

  10. HDU 5842 Lweb and String(Lweb与字符串)

    p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...