英雄会在线编程题目(请大家不吝赐教)

<span style="font-size:18px;">最近看了一道英雄会在线编程题目,题目的介绍如下:</span>
<span style="font-size:18px;">
</span>
<span style="font-size:18px;">题目详情:</span>
<span style="font-size:18px;"></span><p style="font-family: Simsun;font-size:14px;">有一个数列,所有的数都是非负整数,你可以进行如下方式进行一次操作(注意一次完整的操作必须先后完成如下两个步骤):</p><p style="font-family: Simsun;font-size:14px;">(1) 任选一个不小于3的数,把它减少3。</p><p style="font-family: Simsun;font-size:14px;">(2) 任选一个数把它增加1。</p><p style="font-family: Simsun;font-size:14px;">请问,最多能够操作多少次?</p><p style="font-family: Simsun;font-size:14px;">输入格式:</p><p style="font-family: Simsun;font-size:14px;">多组数据,每组数据第一行是一个正整数n,表示数列中数的个数。(1<=n<=20000)</p><p style="font-family: Simsun;font-size:14px;">第二行包含n个空格分隔的非负整数,每个整数不超过1000000。</p><p style="font-family: Simsun;font-size:14px;">输出格式:</p><p style="font-family: Simsun;font-size:14px;">对每组数据输出一行,表示最多可以进行的操作次数。</p><div class="l3" style="font-family: Simsun;font-size:14px;">                答题说明</div><div class="l_c3" style="font-family: Simsun;font-size:14px;"><p>输入样例</p><p>1</p><p>10</p><p>2</p><p>10 11</p><p>输出样例:</p><p>4</p><p>10</p></div>    我想的是直接按照题目提供的算法来,这种方法很笨,但是我喜欢善始善终,尽然开始了,就尽量完成。现在程序能够正常运行,只是只能达到部分预期。只能计算出随机情况下的最大操作次数,无法计算出所有情况下最大的操作次数。此时又不能进行穷举法,走到这儿就觉得走不下去了,请大家不吝赐教。
<span style="font-size:18px;">package com.obob.forFun;import java.util.ArrayList;
import java.util.Random;public class Test {private static void calculate(ArrayList arr){int length=0;  //数组中数的个数ArrayList array=new ArrayList();  //相应数组int count=0;  //最多能进行的次数for(int i=0;i<arr.size()-1;i+=2){length=(int)arr.get(i);String val=arr.get(i+1).toString();String []valOneByOne=val.split(" ");for(int j=0;j<valOneByOne.length;j++){array.add(Integer.valueOf(valOneByOne[j]));}while(true){if(minusThree(array)){plusOne(array);count++;}else{System.out.println("第"+(i/2+1)+"条数组最多能操作的次数:    "+count);break;}}}return ;}private static boolean minusThree(ArrayList arr){Random random=new Random(System.currentTimeMillis());StringBuffer count=new StringBuffer(arr.size()); //计数器,记录在当前数组里查找的记录数
//		System.out.println("count capacity:"+count.capacity());
//		System.out.println("count length:"+count.length());for(int i=0;i<arr.size();i++){  
//			count.setCharAt(i, '0');count.append('0');}while(true){int ranInt=random.nextInt(arr.size());String s=count.toString();if(!s.contains("0")){return false;   //此时这个数组已经全部都小于3了,无法-3}if((int)arr.get(ranInt)>4){arr.set(ranInt, (int)arr.get(ranInt)-3);return true;}else{count.setCharAt(ranInt, '1');  //数组下标为ranInt的地方已经小于3continue;}}}private static void plusOne(ArrayList arr){Random random=new Random(System.currentTimeMillis());while(true){int ranInt=random.nextInt(arr.size());if((int)arr.get(ranInt)<1000000){arr.set(ranInt, (int)arr.get(ranInt)+1);break;}}}public static void main(String []args){ArrayList inputArray=new ArrayList();for(int i=0;i<10;i++){int j=0;inputArray.add(j++, 10); //数组第一位存储第二位的整数个数StringBuffer sbArray=new StringBuffer();String s="";Random random=new Random();for(int k=1;k<11;k++){sbArray.append(String.valueOf(random.nextInt(1000000)+1)+" ");/*if(k%10==0){System.out.println("\n");}*/}inputArray.add(j, sbArray);   //输入数组的初始化完成}calculate(inputArray);}
}
</span>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/314224.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

P2304 [NOI2015] 小园丁与老司机(网络流/上下界网络流)

P2304 [NOI2015] 小园丁与老司机 平面上有n个点&#xff0c;每次可以向左、右、上、左上45度、右上45度移动&#xff0c;然后直线移动到达第一个没有到过的点&#xff0c;如果没有这样的点就不能移动&#xff0c;求解一条最长路&#xff0c;然后求解将所有可能不是左右移动的道…

ASP.NET Core on K8S深入学习(7)Dashboard知多少

本篇已加入《.NET Core on K8S学习实践系列文章索引》&#xff0c;可以点击查看更多容器化技术相关系列文章。在第二篇《部署过程解析与Dashboard》中介绍了如何部署Dashboard&#xff0c;但是没有更多地介绍如何使用Dashboard&#xff0c;本文就来对Dashboard的使用进行补充。…

Convex Hull (ACM-ICPC 2018 沈阳赛区网络预赛) 存个公式

Convex Hull gay(i){0ifikxx,x>k,k>1iielse}求∑i1n∑j1igay(j)∑i1n(n−i1)gay(i)∑i1n(n−i1)μ2(i)i2因为μ2(n)∑i2∣nμ(i)&#xff0c;容斥定理显然得到有原式∑i1n(n−i1)i2∑j2∣iμ(j)(n1)∑i1n∑j2∣iμ(j)−∑i1ni3∑j2∣iμ(j)(n1)∑j1nμ(j)∑j2∣ii2−∑j1…

程序员的自我修养

一、技术类——互联网天际的摘星者 Unix环境高级编程&#xff08;第3版&#xff09; 编程珠玑 Python核心编程&#xff08;第二版&#xff09; 算法谜题 JavaScript框架设计 鸟哥的Linux私房菜 基础学习篇(第三版) 游戏机制——高级游戏设计技术 第一本Docker书 Swift …

多项式对数函数|指数函数(多项式)

多项式对数函数|指数函数 这个思路就是先求导然后再积分&#xff0c;这样就可以得到一个式子&#xff0c;对于多项式对数函数&#xff0c;我们就可以直接求解了&#xff0c;然后对于多项式指数函数还需要使用分治fft。 多项式对数&#xff1a; #include<bits/stdc.h> …

P5221 Product(反演)

P5221 Product 推式子 ∏i1n∏j1nlcm(i,j)gcd(i,j)∏i1n∏j1nijgcd(i,j)2我们考虑上面∏i1n∏j1nij∏i1nin∏j1nj∏i1ninn!n!n∏i1nin最后得到n!2n再考虑下面化简∏i1n∏j1ngcd(i,j)2∏d1nd2∑i1nd∑j1nd[gcd(i,j)1]对∑i1nd∑j1nd[gcd(i,j)1]化简∑k1ndμ(k)(nkd)2整体化简后…

【学习笔记】Docker - 02. 在容器中运行软件(上)

2.1 控制容器: 构建一个网站监视器 需求: 客户想让你做一个网站, 这个网站需要被紧密的监视, 如果服务器宕机了, 那么它们的团队会收到相关的邮件. 这里用到了3个容器. 第一个运行NGINX; 第二个运行一个叫做mailer的程序. 这两个容器都是detached的. Detached 表示容器将在后台…

P4249 [WC2007]剪刀石头布(网络流/费用流)

P4249 [WC2007]剪刀石头布 在一个竞赛图上一些边的方向已经确定&#xff0c;但是还有一些边的方向没有确定&#xff0c;求解最多有多少三元环。 首先看到三元环个数&#xff0c;按照套路我们利用度数计算&#xff0c;然后考虑每一条边&#xff0c;每一条边的贡献就是使两个点…

算法学习之旅

问题&#xff1a;设计一个算法&#xff0c;计算出n阶乘中尾部零的个数 例如: 11! 39916800&#xff0c;因此应该返回 2 挑战&#xff1a;O(logN)的时间复杂度 想法1&#xff1a; 找出1–n中每个数字能够被5或者10整除的次数&#xff0c;加在一起就是答案。但是时间复杂度是…

P6810 「MCOI-02」Convex Hull 凸包

P6810 「MCOI-02」Convex Hull 凸包 思路 ∑i1n∑j1mτ(i)τ(j)τ(gcd(i,j))∑d1nτ(d)∑i1nd∑j1mdτ(id)τ(id)[gcd(i,j)1]∑d1nτ(d)∑k1ndμ(k)∑i1ndk∑j1mdkτ(idk)τ(idk)tkd∑t1n∑i1ntτ(it)∑j1mtτ(jt)∑d∣tτ(d)μ(td)∑d∣tτ(d)μ(td)τ∗μ,有τ(n)∑d∣n∑d∣…

P6295 有标号 DAG 计数(多项式指数函数对数函数/二项式反演/动态规划/生成函数)

P6295 有标号 DAG 计数 https://www.luogu.com.cn/problem/P6295 求解n个点的有标号弱联通DAG个数 首先根据exp的组合意义&#xff0c;我们考虑指数型生成函数&#xff0c;那么我们先求出不要求弱联通的个数&#xff0c;然后ln回去就是弱联通的DAG个数。 然后考虑进行dp&…

使用.Net Core CLI命令dotnet new创建自定义模板

文章起源来自一篇博客&#xff1a;使用 .NET CORE 创建 项目模板&#xff0c;模板项目&#xff0c;Template - DeepThought - 博客园之前使用Abp的时候就很认同Abp创建模板项目的方式。想不到.Net Core出了更赞的方式创建模板。之前写过一个系列文章&#xff0c;有不少对Abp框架…

lintcode 有效的括号序列

心血来潮&#xff0c;半夜做了一道Lintcode的题目&#xff0c;调试完睡觉&#xff0c;欢迎大家批评指正。 public boolean isValidParentheses(String s) {// Write your code hereStack stacknew Stack();if(s.length()0){return true;}else if(s.length()1){return false;}fo…

C++ 预处理命令

C 预处理命令 https://www.luogu.com.cn/blog/ofnoname/yu-chu-li-ming-ling#

P3312 [SDOI2014]数表(离线 + 树状数组前缀和优化)

P3312 [SDOI2014]数表 推式子 ∑i1n∑j1mσ(gcd(i,j))∑d1nσ(d)∑i1nd∑j1md[gcd(i,,j)1]∑d1nσ(d)∑d1ndμ(k)nkdmkdtkd∑t1nntmt∑d∣tσ(d)μ(td)\sum_{i 1}^{n} \sum_{j 1} ^{m} \sigma(gcd(i, j))\\ \sum_{d 1} ^{n} \sigma(d) \sum_{i 1} ^{\frac{n}{d}} \sum_{j …

2019 年 8 月编程语言排行榜,C#重回增长之路

至于火热的 Python&#xff0c;其占有率还是保持着一如既往的增长势头&#xff0c;由 7 月的 9.260% 上升到现在的 10.020%。C 的占有率则稍有下降&#xff0c;由 6.705% 下降到了 6.057%&#xff0c;C# 和 Visual Basic .NET 分别呈现出增长和下降的趋势。可能是本期榜单没什么…

[CQOI2015]选数(杜教筛)

[CQOI2015]选数 推式子 根据题意可写出式子&#xff1a; ∑a1LH∑a2LH⋯∑anLH[gcd(a1,a2…an)k]∑a1⌈Lk⌉⌊Hk⌋∑a2⌈Lk⌉⌊Hk⌋⋯∑an⌈Lk⌉⌊Hk⌋[gcd(a1,a2…an)k]∑k1⌊Hk⌋μ(k)(⌊Hkd⌋−⌈Lkd⌉1)n提前处理一下左右端点∑k1⌊Hk⌋μ(k)(⌊Hkd⌋−⌊L−1kd⌋)n\sum_…

asp.net core系列 71 Web架构分层指南

一.概述本章Web架构分层指南&#xff0c;参考了“Microsoft应用程序体系结构指南”&#xff08;该书是在2009年出版的&#xff0c;当时出版是为了帮助开发人员和架构师更快速&#xff0c;更低风险地使用Microsoft平台和.NET Framework设计和构建有效&#xff0c;高质量的应用程…

P4719 【模板】“动态 DP“动态树分治(矩阵/轻重链剖分/ddp)

P4719 【模板】“动态 DP”&动态树分治 求解树上最大权独立集&#xff0c;但是需要支持修改。 https://www.luogu.com.cn/problem/solution/P4719 首先我们可以得到一个非常简单的dp式子&#xff0c;然后现在考虑怎么支持修改&#xff0c;首先每一次修改只会影响到当前节…

java编程笔记

程序功能&#xff1a;java统计abacbacdadbc中的每个字母出现的次数&#xff0c;输出格式是&#xff1a;a(4)b(3)c(3)d(2) 分析&#xff1a;将大小写按照同一个字母处理&#xff0c;最后都输出小写。 思路&#xff1a; 1.将string转成字符串数组&#xff0c;便于处理 2.遍历…