CSDN编程挑战——《-3+1》
版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/user_longling/article/details/24674033
-3+1
题目详情:
有一个数列。全部的数都是非负整数。你能够进行例如以下方式进行一次操作(注意一次完整的操作必须先后完毕例如以下两个步骤):
(1) 任选一个不小于3的数,把它降低3。
(2) 任选一个数把它添加1。
请问,最多能够操作多少次?
输入格式:
多组数据,每组数据第一行是一个正整数n,表示数列中数的个数。(1<=n<=20000)
第二行包括n个空格分隔的非负整数,每一个整数不超过1000000。
输出格式:
对每组数据输出一行。表示最多能够进行的操作次数。
答题说明:
输入例子
1
10
2
10 11
输出例子:
4
10
#include "stdio.h"
#include "string.h"
int main()
{
long long res,add; //res结果。add表示要加1的次数
int n,a[3];
while(scanf("%d",&n)!=EOF)
{
memset(a,0,sizeof(a));
add=0; res=0;
for(int i=0,tmp;i<n;i++){
scanf("%d",&tmp);
add+=tmp/3;
a[tmp%3]++;
}
res=add;
while(add-->0)
{
// 任选一个数把它添加1,有优先级的
if(a[2]>0){
a[2]--; a[0]++; res++; add++;
}else if(a[1]>0){
a[1]--; a[2]++;
}else if(a[0]>0){
a[0]--; a[1]++;
}
}
printf("%I64d\n",res);
}
return 0;
}
/* 注意:结果值为int类型,数据大时可能会溢出因此须定义为long long类型 */
CSDN挑战编程交流群:372863405
CSDN编程挑战——《-3+1》的更多相关文章
- 【搬砖】安卓入门(2)- Java开发编程基础--进制转换和运算符
02.01_Java语言基础(常量的概述和使用)(掌握) A:什么是常量 在程序执行的过程中其值不可以发生改变 B:Java中常量的分类 字面值常量 自定义常量(面向对象部分讲) C:字面值常量的分类 ...
- CSDN编程挑战——《进制转换》
版权声明:本文为博主原创文章.未经博主同意不得转载. https://blog.csdn.net/user_longling/article/details/24804949 进制转换 题目详情: 我 ...
- Java基础笔记(3) 进制与进制转换
---恢复内容开始--- 进制 在一般生活中,我们一直在应用的十进制,就是逢十进一,而今天我们要接触的是,计算机编程常用的进制!首先我们要知道,计算机内部运算采用的是二进制,也就是逢二进制! 1.什么 ...
- C++ 中数串互转、进制转换的类
/******************************************************************** created: 2014/03/16 22:56 file ...
- java中Integer包装类的具体解说(java二进制操作,全部进制转换)
程序猿都非常懒,你懂的! 今天为大家分享的是Integer这个包装类.在现实开发中,我们往往须要操作Integer,或者各种进制的转换等等.我今天就为大家具体解说一下Integer的使用吧.看代码: ...
- Java的进制转换操作(十进制、十六进制、二进制)
2014-05-06 17:34 吴文付 最近由于工作上的需要,遇到进制转换的问题.涉及到的进制主要是 十进制,十六进制,二进制中间的转换. 这里整理一下.具体的计划为:封装一个转换类,一个测试类. ...
- 最全面的Java字节byte操作,处理Java基本数据的转换及进制转换操作工具,流媒体及java底层开发项目常用工具类
前言:用于处理Java基本数据的转换及进制转换操作工具 一.实现功能 1.int与byte互转 2.int与byte[]互转 3.short与byte互转 4.short与byte[]互转 5.16位 ...
- JAVA之旅(一)——基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算
JAVA之旅(一)--基本常识,JAVA概念,开发工具,关键字/标识符,变量/常量,进制/进制转换,运算符,三元运算 Android老鸟重新学一遍JAVA是什么感觉?枯燥啊,乏味啊,而且归纳写博客,都 ...
- java:数据结构(二)栈的应用(进制转换全收集)
说到进制转换,java已经封装了基本的方法,在竞赛中使用封装的方法自然能节省大量时间 另一位仁兄介绍的封装好的方法: https://blog.csdn.net/m0_37961948/article ...
- 洛谷P2084 进制转换
题目背景 无 题目描述 今天小明学会了进制转换,比如(10101)2 ,那么它的十进制表示的式子就是 : 1*2^4+0*2^3+1*2^2+0*2^1+1*2^0, 那么请你编程实现,将一个M进制的 ...
随机推荐
- Django-rest Framework(四)
序列化模块时rest-framework的很重要的组成部分 rest-framework序列化模块(核心) 一. 为什么要使用序列化组件? 后台的数据多以后台的对象存在,经过序列化后,就可以格式化 ...
- mysql中not in子查询不能为空
转载自:https://blog.csdn.net/headingalong/article/details/77744755 错误sql delete from company_info where ...
- php 5.4 windows2003 iis 安装 注意
php5.3 以上 不再支持ISAPI模式 只能用 FastCGI ....
- jquery判断元素是否出现在可视区
在我们的日常开发中,经常会遇到当元素出现在可视区的时候需要去出发某一事件的情况.我最近在优化环球网首页的时候,将非可视区的代码全部放入到webComponent中.打算当这个元素出现在可视区的时候 ...
- C#解析字符串公式
/// <summary> /// 中缀表达式到逆波兰表达式的转换及求值 /// </summary> public class RpnExpression { #region ...
- CSS实例 display display 边距
CSS学习大纲 在标签上设置style属性: background-color:#2459a2 ; height:48px ; 编写CSS样式: 1.标签的style属性 2.写在head里面,sty ...
- js作用域的销毁、不立即销毁、不销毁
JavaScript中的函数执行会形成私有的作用域. (1)作用域的销毁 一般情况下,函数执行形成一个私有的作用域,当执行完成后就销毁了->节省内存空间 (2)作用域的不立即销毁 functio ...
- [转]深入理解ajax系列——头部消息
每个HTTP请求和响应都会带有相应的头部信息,其中有的对开发人员有用.XHR对象提供了操作头部信息的方法.本文将详细介绍HTTP的头部信息 默认信息 默认情况下,在发送XHR请求的同时,还会发送下列头 ...
- poj 2318 TOYS(计算几何 点与线段的关系)
TOYS Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 12015 Accepted: 5792 Description ...
- idea使用docker插件
idea使用docker插件 接着上一篇docker开启远程访问后,我们就可以通过idea使用docker插件把项目部署到docker了. 首先我们先在idea安装docker插件: 在setting ...