HDU1059——Dividing,HDU1060——Leftmost Digit,HDU1061——Rightmost Digit

目录

HDU1059——Dividing

题目描述

运行代码

代码思路

HDU1060——Leftmost Digit

题目描述

​编辑​编辑 运行代码

代码思路

HDU1061——Rightmost Digit

题目描述

运行代码(快速幂)

代码思路

HDU1059——Dividing

题目描述

Problem - 1059

运行代码

#include <iostream>
#include <vector>
#include<algorithm>
#include<stdio.h>
using namespace std;const int MAX_N = 50000 + 7;
const int MAX_W = 120005 + 7;int dp[MAX_W];
int w[MAX_N];int main() {int s[7];int count = 0;while (cin >> s[1] >> s[2] >> s[3] >> s[4] >> s[5] >> s[6], s[1] || s[2] || s[3] || s[4] || s[5] || s[6]) {fill(dp, dp + MAX_W, 0);int k = 0;int sum = 0;for (int i = 1; i <= 6; i++) {sum += s[i] * i;for (int a = 1; a <= s[i]; a *= 2) {w[k++] = i * a;s[i] -= a;}if (s[i] > 0)w[k++] = i * s[i];}for (int i = 0; i < k; i++)for (int j = sum / 2; j >= w[i]; j--)dp[j] = max(dp[j - w[i]] + w[i], dp[j]);cout << "Collection #" << ++count << ":" << endl;if (2 * dp[sum / 2] == sum)cout << "Can be divided." << endl;elsecout << "Can't be divided." << endl;cout << endl;}return 0;
}

代码思路

  1. 定义了一些常量和数组:

    • MAX_N 和 MAX_W 分别表示可能的最大数量和最大权重。
    • dp 数组用于动态规划过程中的状态存储。
    • w 数组用于存储不同组合的弹珠权重。
  2. 在 main 函数中:

    • 定义了一个整数数组 s 来存储每种价值的弹珠数量。
    • 定义了一个计数器 count 用于标记集合的编号。
    • 通过一个循环不断读取弹珠的数量,只要输入的弹珠数量不全为 0 。
    • 计算弹珠的总价值 sum ,同时将不同组合的弹珠价值存储到 w 数组中。
    • 然后使用两层循环进行动态规划:外层循环遍历 w 数组,内层循环从总价值的一半开始递减,更新 dp 数组中的值,表示在当前权重下能达到的最大价值。
    • 根据最终 dp[sum / 2] 的值是否为总价值的一半,判断能否将弹珠公平划分,并输出相应的结果。
    • 每次处理完一个集合,增加集合编号,并输出一个空行。

HDU1060——Leftmost Digit

题目描述

Problem - 1060

 运行代码

#include <iostream>
#include <cmath>using namespace std;int main() {int T;cin >> T;while (T--) {long long N;cin >> N;double num = N * log10(N);num = num - floor(num);int digit = pow(10, num);cout << digit << endl;}return 0;
}

代码思路

  1. 首先,读取测试用例的数量 T 。
  2. 进入一个循环,处理 T 个测试用例。
  3. 在每个测试用例中,读取一个正整数 N 。
  4. 通过数学公式 num = N * log10(N) 计算一个中间值 num 。
    • log10(N) 表示以 10 为底 N 的对数。
    • N * log10(N) 得到的值的小数部分与 N^N 的对数的小数部分有关。
  5. 然后,通过 num = num - floor(num) 提取出 num 的小数部分。
  6. 最后,使用 pow(10, num) 计算出一个值,并取整数部分作为 N^N 的最左边的数字进行输出。

HDU1061——Rightmost Digit

题目描述

Problem - 1061

运行代码(快速幂)

#include <iostream>
using namespace std;
int fastPowerMod(int base, int exponent, int modulus) {int result = 1;base %= modulus;while (exponent > 0) {if (exponent & 1) {result = (result * base) % modulus;}exponent >>= 1;base = (base * base) % modulus;}return result;
}int main() {int T;cin >> T;while (T--) {long long N;cin >> N;int last = fastPowerMod(N, N, 10);cout << last << endl;}return 0;
}

代码思路

  1. 定义了一个函数 fastPowerMod ,用于计算快速幂取模。

    • 初始化结果 result 为 1 。
    • 将底数 base 对模 modulus 取余,以防止中间计算过程中数值过大。
    • 当指数 exponent 大于 0 时,进行循环:如果指数的最低位为 1 (通过 exponent & 1 判断),则更新结果为 result = (result * base) % modulus ,即在当前结果的基础上乘以底数,并对模取余。将指数右移一位(exponent >>= 1),同时将底数平方并对模取余(base = (base * base) % modulus)。
    • 最终返回计算得到的结果。
  2. 在 main 函数中:

    • 读取测试用例的数量 T 。
    • 进入一个循环,处理 T 个测试用例:读取一个正整数 N 。调用 fastPowerMod 函数,以 N 作为底数和指数,以 10 作为模,计算并得到 N^N 对 10 取模的结果,存储在 last 中。输出计算得到的结果。

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

索引(数据库优化)事务

索引 事务 Spring事务管理 上图模拟的异常为运行时异常 加上这个配置之后如果回滚会显示下面异常信息 事务进阶

数模打怪(八)之图论模型

一、作图 图的数学语言描述&#xff1a; G( V(G), E(G) )&#xff0c;G&#xff08;graph&#xff09;&#xff1a;图&#xff0c;V&#xff08;vertex&#xff09;&#xff1a;顶点集&#xff0c;E&#xff08;edge&#xff09;&#xff1a;边集 1、在线作图 https://csac…

【单词搜索】python刷题记录

R2-回溯:DFS剪枝. class Solution:def exist(self, board: List[List[str]], word: str) -> bool:#回溯经典问题&#xff1a;DFS剪枝解决mlen(board)nlen(board[0])def dfs(i,j,k):#3种剪枝策略if not 0<i<m or not 0<j<n or board[i][j]!word[k]:return Falsei…

whaler_通过镜像导出dockerfile

1、Whaler简介 Whaler:从镜像导出Dockerfile&#xff0c;whaler英文释义捕鲸船。 2、下载安装 # wget -cO /usr/local/bin/whaler https://github.com/P3GLEG/Whaler/releases/download/1.0/Whaler_linux_amd64 3、赋予可执行权限 [rootlocalhost ~]# chmod x /usr/local/…

学习测试11-移动自动化(略)

安卓SDK 链接: https://pan.baidu.com/s/1P4v9K2RYAGEoA5M_93hHlQ?pwdqsbu 提取码: qsbu 复制这段内容后打开百度网盘手机App&#xff0c;操作更方便哦 记得配置环境变量 下载Appium软件 hub网址&#xff1a;https://github.com/appium/appium-desktop/releases 链接: https…

c++入门----类与对象(中)

OK呀&#xff0c;家人们承接上文&#xff0c;当大家看过鄙人的上一篇博客后&#xff0c;我相信大家对我们的c已经有一点印象了。那么我们现在趁热打铁再深入的学习c入门的一些知识。 类的默认成员函数 首先我们学习的是我们的默认函数。不知道大家刚读这个名词是什么反应。默认…

基于Shell脚本实现文件定时拷贝

需要开发一个需求&#xff0c;将服务器A的 批量数据文件 定时同步 到远程服务器B中&#xff0c;这里我们的基本思路为&#xff1a; 服务器A&#xff1a;存放数据文件服务器B&#xff1a;部署shell脚本&#xff0c;从服务器A中拉取文件至本地目录中。 注意&#xff1a;这里也可…

DDR3布线时候的经验总结

摆放BGA下面的滤波电容的时候注意不要让两个电容的电源和地对着头放&#xff0c;手工焊接时候容易短路 阻抗层必须是实心铜皮覆盖&#xff1a; &#xff08;3&#xff09;阻抗线一定要有阻抗参考层&#xff0c;一般以相邻的接地或电源层做参考层&#xff08;如顶层阻抗线&…

【React】详解classnames工具:优化类名控制的全面指南

文章目录 一、classnames的基本用法1. 什么是classnames&#xff1f;2. 安装classnames3. 导入classnames4. classnames的基本示例 二、classnames的高级用法1. 动态类名2. 传递数组3. 结合字符串和对象4. 结合数组和对象 三、实际应用案例1. 根据状态切换类名2. 条件渲染和类名…

解决腾讯云服务器登录宝塔面板忘记密码

文章目录 1.问题描述2.解决方案&#xff1a;3.总结 1.问题描述 宝塔忘记了密码&#xff0c;在腾讯云面板输入bt打算修改密码显示报错 2.解决方案&#xff1a; 输入如下指令 sudo bt再选择5即可修改密码&#xff08;如下图&#xff09; 3.总结 本质原因是自己直接输入bt…

【运算放大器】输入电压范围与输出电压范围

概述 总结运算放大器的输入电压范围和输出电压范围基本理论。 总结于《你好&#xff0c;放大器初识篇》。 文章目录 概述一、输入电压范围&#xff08;Input Voltage Range&#xff09;二、输出电压范围&#xff08; V O H / V O L V_{OH}/V_{OL} VOH​/VOL​ 或者 Swing fro…

Keras入门:一维线性回归问题

目录 一、一维变量线性回归 1. 数据生成 2. 建立训练模型 3. 作图 4. 完整代码 一、一维变量线性回归 1. 数据生成 import keras import numpy as np import matplotlib.pyplot as plt #matplotlib inline xnp.linspace(0, 100, 30) #0~100之间&#xff0c;生成30个数 y…

前端JS特效第58波:洋葱剥皮文本变形特效

洋葱剥皮文本变形特效&#xff0c;先来看看效果&#xff1a; 部分核心的代码如下&#xff1a; <!DOCTYPE html> <html lang"en" > <head><meta charset"UTF-8"><title>Onion Skinning Text Morphing</title><link…

若依ruoyi+AI项目二次开发(智能售货机运营管理系统)

(一) 帝可得 - 产品原型 - 腾讯 CoDesign (qq.com)

ctfshow-web入门-php特性(web137-web141)

目录 1、web137 2、web138 3、web139 4、web140 5、web141 1、web137 直接调用 ctfshow 这个类下的 getFlag 函数&#xff0c;payload&#xff1a; ctfshowctfshow::getFlag 查看源码&#xff1a; 拿到 flag&#xff1a;ctfshow{dd387d95-6fbe-4703-8ec5-9c8f9baf2bb5} 在…

19 Python常用内置函数——range()

range() 是 Python 开发中非常常用的一个内置函数。该函数返回具有惰性求值特点的 range 对象&#xff0c;其中包含左闭右开区间 [start, end) 内以 step 为步长的整数。 参数 start 默认为 0&#xff0c;step 默认为 1。 print(range(5)) print(list(range(5))) print(list(r…

我在Vscode学Java泛型(泛型设计、擦除、通配符)

Java泛型 一、泛型 Generics的意义1.1 在没有泛型的时候&#xff0c;集合如何存储数据1.2 引入泛型的好处1.3 注意事项1.3.1 泛型不支持基本数据类型1.3.2 当泛型指定类型&#xff0c;传递数据时可传入该类及其子类类型1.3.3 如果不写泛型&#xff0c;类型默认是Object 二、泛型…

Java语言程序设计——篇九(1)

&#x1f33f;&#x1f33f;&#x1f33f;跟随博主脚步&#xff0c;从这里开始→博主主页&#x1f33f;&#x1f33f;&#x1f33f; 内部类 概述内部类—内部类的分类成员内部类实战演练 局部内部类实战演练 匿名内部类实战演练 静态内部类实战演练 概述 内部类或嵌套类&#…

【计算机网络】RIP路由协议实验

一&#xff1a;实验目的 1&#xff1a;掌握在路由器上配置RIPv2。 二&#xff1a;实验仪器设备及软件 硬件&#xff1a;RCMS交换机、网线、内网网卡接口、Windows 2019操作系统的计算机等。具体为&#xff1a;三层交换机1台、路由器2台。 软件&#xff1a;wireshark软件、记…

virtualbox ubuntu扩充磁盘大小

首先在虚拟存储管理里面修改磁盘大小 然后安装gparted sudo gparted 打开管理工具 选中要调整的区域右键选择调整区域大小 拖动上述位置就可以实现扩容。完成后点击应用 然后重启虚拟机即可。