hdu 4811 数学 不难
http://acm.hdu.edu.cn/showproblem.php?
pid=4811
由于看到ball[0]>=2 && ball[1]>=2 && ball[2]>=2 ans=(sum-6)*6+15 sum是三种颜色的球个数的和,然后就想到分类讨论,由于情况是可枚举的。
发现整数假设不加LL直接用%I64d打印会出问题
//#pragma comment(linker, "/STACK:102400000,102400000")
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <string>
#include <iostream>
#include <iomanip>
#include <cmath>
#include <map>
#include <set>
#include <queue>
using namespace std; #define ls(rt) rt*2
#define rs(rt) rt*2+1
#define ll long long
#define ull unsigned long long
#define rep(i,s,e) for(int i=s;i<e;i++)
#define repe(i,s,e) for(int i=s;i<=e;i++)
#define CL(a,b) memset(a,b,sizeof(a))
#define IN(s) freopen(s,"r",stdin)
#define OUT(s) freopen(s,"w",stdout)
const ll ll_INF = ((ull)(-1))>>1;
const double EPS = 1e-8;
const double pi = acos(-1.0);
const int INF = 100000000; ll ball[3]; int main()
{
while(~scanf("%I64d%I64d%I64d",&ball[0],&ball[1],&ball[2]))
{
sort(ball, ball+3);
ll sum=ball[0]+ball[1]+ball[2];
if(ball[0]>=2 && ball[1]>=2 && ball[2]>=2)
{ printf("%I64d\n",(ll)(sum-6)*6+15);
continue;
} if(!ball[0] && !ball[1])
{
printf("%I64d\n",ball[2]==0||ball[2]==1 ? 0LL :2*ball[2]-3);
continue;
}
if(!ball[0])
{
ll ans=0LL;
if(ball[1]==1){printf("%I64d\n",(ans=ball[2]==1?1:(ll)(3*ball[2])-3));continue;}
if(ball[1]>=2){printf("%I64d\n",(ans=4*(sum-4)+6));continue;}
}
if(ball[0] == 1)
{
if(ball[1]==1)//printf("%I64d\n", ball[2]==1 ? 3LL : 3*ball[2]);
{
if(ball[2] == 1)puts("3");
if(ball[2] >=2) printf("%I64d\n",6+4*(ball[2]-2));
}
if(ball[1]>1)printf("%I64d\n", (sum-5)*5+10);
}
}
return 0;
}
AC了之后看到别人的代码真是短啊......
http://blog.csdn.net/accelerator_/article/details/25918093
推理一下,发现能够先求出后面放小球能够加分的最大值,然后前面的和为0 + 1 + 2 + ...+ max,max最大为6,由于每一个球最多算左右两边
代码:
#include <iostream>
#include <algorithm>
using namespace std;
long long a, b, c; long long tra(long long num) {
return num > 2 ? 2 : num;
} int main() {
while (cin >> a >> b >> c) {
long long sum = tra(a) + tra(b) + tra(c);
long long hav = max(0ll, a + b + c - sum);
cout << (hav * sum + (sum - 1) * sum / 2) << endl;
}
return 0;
}
hdu 4811 数学 不难的更多相关文章
- HDU 5984 数学期望
对长为L的棒子随机取一点分割两部分,抛弃左边一部分,重复过程,直到长度小于d,问操作次数的期望. 区域赛的题,比较基础的概率论,我记得教材上有道很像的题,对1/len积分,$ln(L)-ln(d)+1 ...
- HDU 5976 数学,逆元
1.HDU 5976 Detachment 2.题意:给一个正整数x,把x拆分成多个正整数的和,这些数不能有重复,要使这些数的积尽可能的大,输出积. 3.总结:首先我们要把数拆得尽可能小,这样积才会更 ...
- *HDU 2451 数学
Simple Addition Expression Time Limit: 5000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Ja ...
- [ An Ac a Day ^_^ ] hdu 4565 数学推导+矩阵快速幂
从今天开始就有各站网络赛了 今天是ccpc全国赛的网络赛 希望一切顺利 可以去一次吉大 希望还能去一次大连 题意: 很明确是让你求Sn=[a+sqrt(b)^n]%m 思路: 一开始以为是水题 暴力了 ...
- Ball HDU - 4811
Jenny likes balls. He has some balls and he wants to arrange them in a row on the table. Each of tho ...
- hdu 4506(数学,循环节+快速幂)
小明系列故事——师兄帮帮忙 Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)Tot ...
- hdu 4432 数学杂题
http://acm.hdu.edu.cn/showproblem.php?pid=4432 6分钟写的代码,一上午去调试,, 哎,一则题目没看懂就去写了,二则,哎,,恶心了.在坚持几天然后ACM退役 ...
- HDU 4811 Ball -2013 ICPC南京区域现场赛
题目链接 题意:三种颜色的球,现给定三种球的数目,每次取其中一个放到桌子上,排成一条线,每次放的位置任意,问得到的最大得分. 把一个球放在末尾得到的分数是它以前球的颜色种数 把一个球放在中间得到的分数 ...
- hdu 5288 数学 ****
给一个序列 定义函数f(l ,r) 为区间[l ,r] 中 的数ai不是在这个区间其他任意数aj的倍数 求所有f(l,r)之和 通过预处理,记录 a[i] 的左右边界(所谓的左右边界时 在从 a[i] ...
随机推荐
- Vue 导出表格为Excel
放法有多种,我这里是直接转JSON数据为Excel. 1.既然要使用,那首先当然是安装依赖,在终端命令输入: npm install -S file-saver xlsx npm install -D ...
- centos7 docker镜像源设置
由于docker他的镜像下载地址是国外官网源需要修改 添加 Docker 加速镜像(阿里云专属) 安装/升级你的Docker客户端 推荐安装1.10.0以上版本的Docker客户端,参考文档 dock ...
- 小米开源文件管理器MiCodeFileExplorer-源码研究(6)-媒体文件MediaFile和文件类型MimeUtils
接着之前的第4篇,本篇的2个类,仍然是工具类.MediaFile,媒体文件,定义了一大堆的常量,真正的有用的方法就几个.isAudioFileType.isVideoFileType之类的. Mime ...
- MyBatis学习总结(11)——MyBatis动态Sql语句
MyBatis中对数据库的操作,有时要带一些条件,因此动态SQL语句非常有必要,下面就主要来讲讲几个常用的动态SQL语句的语法 MyBatis中用于实现动态SQL的元素主要有: if choose(w ...
- 基于 Cookie 的 SSO 中间件 kisso
kisso = cookie sso 基于 Cookie 的 SSO 中间件,它是一把快速开发 java Web 登录系统(SSO)的瑞士军刀.欢迎大家使用 kisso !! kisso 帮助文档 ...
- badblocks 检查硬盘是否有坏道
硬盘是比較easy坏掉的设备,使用一段时间后可能会出现坏道等物理故障. 当硬盘出现坏道后,若不及时更换或者进行技术上的处理,磁盘的坏道就会越来越多,并会造成频繁死机和数据丢失. 最好的处理方法是更换新 ...
- JAVASE学习笔记:第十章 SWing经常使用控件类(二)
7.JComboBox 下拉列表 /* * 初始化下拉列表 */ public void addcomb(){ String[] area = {"山西省&qu ...
- Android开发经验之在图片上随意点击移动文字
只要在图片范围之内,文字可随意点击移动. package xiaosi.GetTextImage; import android.content.Context; import android.con ...
- element-UI 表单校验失效处理
1.el-form-item 的 prop属性绑定的要是字符串: eg: :prop="'answer[' + 0 + ']' " //而不是 :prop=&qu ...
- 图片拖拽缩放功能:兼容Chrome、Firefox、IE8+
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...