当前位置: 首页 > wzjs >正文

美食网站 怎么做竹子建站官网

美食网站 怎么做,竹子建站官网,装修公司名字大全参考免费,电脑系统中安装wordpress产值调整 题目描述 偏远的小镇上,三兄弟共同经营着一家小型矿业公司“兄弟矿业”。公司旗下有三座矿山:金矿、银矿和铜矿,它们的初始产值分别用非负整数 A A A、 B B B 和 C C C 表示。这些矿山的产出是小镇经济的核心,支撑着…

产值调整

题目描述

偏远的小镇上,三兄弟共同经营着一家小型矿业公司“兄弟矿业”。公司旗下有三座矿山:金矿、银矿和铜矿,它们的初始产值分别用非负整数 A A A B B B C C C 表示。这些矿山的产出是小镇经济的核心,支撑着三兄弟和许多矿工家庭的生计。

然而,各矿山的产值波动剧烈,有时金矿收益高而银矿、铜矿低迷,有时则相反。这种不稳定性让公司收入难以预测,也常引发兄弟间的争执。为了稳定经营,三兄弟设计了一个公平的产值调整策略,每年执行一次,每次调整时,将根据当前的产值 A A A B B B C C C,计算新产值:

  1. 金矿新产值: A ′ = ⌊ B + C 2 ⌋ A'=\lfloor \dfrac{B+C}{2} \rfloor A=2B+C
  2. 银矿新产值: B ′ = ⌊ A + C 2 ⌋ B'=\lfloor \dfrac{A+C}{2} \rfloor B=2A+C
  3. 铜矿新产值: C ′ = ⌊ A + B 2 ⌋ C'=\lfloor \dfrac{A+B}{2} \rfloor C=2A+B

其中, ⌊ ⌋ \lfloor \rfloor 表示向下取整。例如, ⌊ 3.7 ⌋ = 3 \lfloor 3.7\rfloor = 3 3.7=3 ⌊ 5.2 ⌋ = 5 \lfloor 5.2\rfloor = 5 5.2=5

计算出 A ′ A' A B ′ B' B C ′ C' C 后,同时更新: A A A 变为 A ′ A' A B B B 变为 B ′ B' B C C C 变为 C ′ C' C,作为下一年调整的基础。

三兄弟认为这个方法能平衡产值波动,于是计划连续执行 K K K 次调整。现在,请你帮他们计算,经过 K K K 次调整后,金矿、银矿和铜矿的产值分别是多少。

输入格式

输入的第一行包含一个整数 T T T,表示测试用例的数量。

接下来的 T T T 行,每行包含四个整数 A , B , C , K A,B,C,K A,B,C,K,分别表示金矿、银矿和铜矿的初始产值,以及需要执行的调整次数。

输出格式

对于每个测试用例,输出一行,包含三个整数,表示经过 K K K 次调整后金矿、银矿和铜矿的产值,用空格分隔。

输入输出样例 #1
输入 #1
2
10 20 30 1
5 5 5 3
输出 #1
25 20 15
5 5 5
说明/提示
评测用例规模与约定
  • 对于 30 % 30\% 30% 的评测用例, 1 ≤ T ≤ 100 1 \leq T \leq 100 1T100 1 ≤ A , B , C , K ≤ 1 0 5 1 \leq A, B, C, K \leq 10^5 1A,B,C,K105
  • 对于 100 % 100\% 100% 的评测用例, 1 ≤ T ≤ 1 0 5 1 \leq T \leq 10^5 1T105 1 ≤ A , B , C , K ≤ 1 0 9 1 \leq A, B, C, K \leq 10^9 1A,B,C,K109

P12133 [蓝桥杯 2025 省 B] 产值调整

【思路分析】

做这个题之前观察一下数据范围,K是 1 0 9 10^9 109,T是 1 0 5 10^5 105 如何暴力迭代的话,会是 1 0 14 10^{14} 1014,一定会超时

暴力做法

import java.io.*;
import java.util.*;
public class Main {public static void main(String[] agrs) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));PrintWriter pw = new PrintWriter(System.out);int n = Integer.parseInt(br.readLine());while(n-- > 0) {String[] data = br.readLine().split(" ");int a = Integer.parseInt(data[0]);int b = Integer.parseInt(data[1]);int c = Integer.parseInt(data[2]);int k = Integer.parseInt(data[3]);int aa, bb, cc;for(int i = 0; i < k; i++) {aa = (b + c) / 2;bb = (a + c) / 2;cc = (a + b) / 2;a = aa;b = bb;c = cc;}pw.print(a + " " + b + " " + c);pw.println();}pw.flush();pw.close();br.close();}
}

这种做法顶多过50%的样例,所以我们需要做出优化

一开始我做了一通数学推导,推导完之后我将时间复杂度降低到了O(1),本来还在沾沾自喜,但是一看运行结果,直接WA了。

我突然想到,我按照实数进行推导了,忘记向下取整这回事了。推导过程大概就是推导出a、b、c的迭代变化最总会是等差数列,而a,b,c的总和不变,因此可以直接通过公式求得最后的值。

最后我只能尝试打表,看一下每次a、b、c的变化,这一打表了不得,我发现经过有限次迭代后,最终都会收敛到a == b == c

输入

1
150 140 30 50

输出

85 90 145
117 115 87
101 102 116
109 108 101
104 105 108
106 106 104
105 105 106
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105
105 105 105

因此,我们只需要加上判断提前结束循环,这样的优化最终得以AC

import java.io.*;
import java.util.*;
public class Main {public static void main(String[] agrs) throws Exception {BufferedReader br = new BufferedReader(new InputStreamReader(System.in));PrintWriter pw = new PrintWriter(System.out);int n = Integer.parseInt(br.readLine());while(n-- > 0) {String[] data = br.readLine().split(" ");int a = Integer.parseInt(data[0]);int b = Integer.parseInt(data[1]);int c = Integer.parseInt(data[2]);int k = Integer.parseInt(data[3]);int aa, bb, cc;for(int i = 0; i < k; i++) {aa = (b + c) / 2;bb = (a + c) / 2;cc = (a + b) / 2;a = aa;b = bb;c = cc;if(a == b && a == c && b == c) {break;}}pw.print(a + " " + b + " " + c);pw.println();}pw.flush();pw.close();br.close();}
}
http://www.dtcms.com/wzjs/257373.html

相关文章:

  • 企业咨询服务seo自媒体培训
  • 网站首页设计大赛夜狼seo
  • app推广引流渠道seo行业岗位有哪些
  • 企业做网站哪个最好手机百度2020
  • 用什么程序做网站百度账号怎么改名字
  • 武汉建设招投标网站现在外贸推广做哪个平台
  • 微商城网站开发百度排名竞价
  • 越南人一般去哪个网站做贸易百度seo学院
  • wordpress入门全套视频教程seo搜索引擎营销工具
  • 在线做网站做网站设计的公司
  • 建设部166号令住建部网站厦门百度关键词推广
  • 惠州专业网站建设价格微商怎样让客源主动加你
  • 中国中建设计集团有限公司seo教程网
  • 推荐个做淘宝主图视频的网站sem论坛
  • 做壁纸的网站91关键词
  • 网页设计工作目标便宜的seo官网优化
  • 广安发展建设集团公司网站搜索引擎优化文献
  • 免费的分销小程序优化营商环境评价
  • 个人网站托管站长推荐产品
  • 做网站应该拿多少提成百度竞价推广怎么收费
  • 专业做制作网站百度公司推广
  • 网站外链建设有利于增加网站收录大型的营销型网站
  • 做音乐网站首页要求知名的搜索引擎优化
  • wordpress 显示点击数宁波seo在线优化公司
  • 北京管庄网站建设公司网推平台有哪些
  • 贵阳做企业网站网站seo优化包括哪些方面
  • 长春做高端网站公司关键词快速排名平台
  • 电商网站运营团队建设方案模板西安seo优化培训
  • 长春网站建设建站系统域名查询站长之家
  • 华为一站式服务建站世界足球排名前十名