AtCoder-2379 - 连接竹竿 思维 | 数学

Problem Statement

 

Snuke has N integers. Among them, the smallest is A, and the largest is B. We are interested in the sum of those N integers. How many different possible sums there are?

Constraints

 

  • 1≤N,A,B≤109
  • A and B are integers.

Input

 

Input is given from Standard Input in the following format:

N A B

Output

 

Print the number of the different possible sums.

Sample Input 1

 

4 4 6

Sample Output 1

 

5

There are five possible sums: 18=4+4+4+6, 19=4+4+5+6, 20=4+5+5+6, 21=4+5+6+6 and 22=4+6+6+6.

 

有点唬人 还以为是组合数学相关一类的问题

题意:就是说已知有N条竹竿  然后竹竿长度分布的范围为A~B 

那么求不同可能的长度的竹竿长度之和的数量 

 

分析:一开始一直再往r进制或是组合数上想 因为这种问题难免考虑组合

但是最后也没想出一个理想的公式 看过题解后才发觉有更简单更好的做法

我们可知竹竿之和的范围: N个竹竿 长度之和最小大概是 (N-1)* A+B   ~ (N-1)*B+A 此为最大值

那么如果从最小之和开始 让一个竹竿长度+1 那么最终之和就是离着最大和又近了一步 那么如果重复上个步骤

我们会发现 由于每个竹竿都向一个从A~B的进度条 于是乎在范围内的所有长度都会通过+1遍历到

所以 几行代码就搞定

 


#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{ll n,s,e;scanf("%lld%lld%lld",&n,&s,&e);printf("%lld\n",max(1LL*0,((n-1)*e+s)-((n-1)*s+e-1)));//int会溢出return 0;
}

 

 

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

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

相关文章

UML用例图

统一建模语言&#xff08;Unified Modeling Language&#xff0c;UML&#xff09;又称标准建模语言&#xff0c;是始于1997年的一个OMG标准&#xff0c;它是一个支持模型化和软件系统开发的图形化语言&#xff0c;为软件开发的所有阶段提供模型化和可视化支持&#xff0c;包括由…

[剑指offer]面试题第[44]题[JAVA][数字序列中某一位的数字][找规律]

【问题描述】[中等] 【解答思路】 找规律 时间复杂度&#xff1a;O(logN) 空间复杂度&#xff1a;O(logN) class Solution {public int findNthDigit(int n) {int digit 1;long start 1;long count 9;while (n > count) { // 1.n - count;digit 1;start * 10;count di…

深度学习第五课-训练注意事项与框架使用

说明&#xff1a;本文是七月算法5月深度学习班第五次课听课笔记。黄色标注的部分为自己不太确定的部分。 训练 mini-batch SGD 神经网络使用mini-batch SGD训练得到最优权重。训练过程如下&#xff1a;&#xff08;以下参考了andrew ng的机器学习课程&#xff09;例如训练样本…

next_permutation算法(基于交换)

nextpermutation 算法 这个算法如何实现 我们要观察对于任意的123456 对于一个任意的字符串 我们如果要找他的下一个全排列 就应该变动其数字 使得其数值增大 且是最小的增大 那么仅使用以上数字 如何才能使其变大 但变大的数字 是所有变大范围内最小的可能 我们称其为 最小变大…

【Vue】【Router】手动跳转用 this.$router.push() 时 $router 未定义的问题

初入Vue&#xff0c;手写路由跳转时的问题&#xff1a; toXxxRoute: () > {this.$router.push({path: /xxx, name: xxx}) } 由于使用了箭头函数&#xff0c;this的指向与传统 js 里不同 所以报错 TypeError: Cannot read property $router of undefined 与其保持一个this变量…

[Letcode]第[34]题[JAVA][在排序数组中查找元素的第一个和最后一个位置][暴力][二分]

【问题描述】[中等] 【解答思路】 1. 线性扫描&#xff08;不符合题意&#xff09; 时间复杂度&#xff1a;O(N) 空间复杂度&#xff1a;O(1) class Solution {public int[] searchRange(int[] nums, int target) {int[] targetRange {-1, -1};// find the index of the lef…

习题2-3 求平方与倒数序列的部分和

本题要求对两个正整数m和n&#xff08;m≤n&#xff09;编写程序&#xff0c;计算序列和m​2​​1/m(m1)​2​​1/(m1)⋯n​2​​1/n。 输入格式: 输入在一行中给出两个正整数m和n&#xff08;m≤n&#xff09;&#xff0c;其间以空格分开。 输出格式: 在一行中按照“sum S”的…

用对拍程序来debug错误程序的错误数据

对拍就是通过把自己写的程序的结果和一个完全正确的程序结果进行比较 从而得出自己写的错误程序的漏洞 比如这道题 24点游戏 EOlymp - 44 The number of ones In arithmetic expression you are allowed to use the number 1, operations of addition, multiplication and …

[剑指offer]面试题第[41]题[Leetcode][第235题][JAVA][数据流中的中位数][优先队列][堆]

【问题描述】[困难] 【解答思路】 1. 思路1 时间复杂度&#xff1a;O(logN) 空间复杂度&#xff1a;O(N) import java.util.PriorityQueue;public class MedianFinder {/*** 当前大顶堆和小顶堆的元素个数之和*/private int count;private PriorityQueue<Integer> maxh…

学习笔记,单例

class test(object):flog Noneflog1 Falsedef __new__(cls, *args, **kwargs):if cls.flog is None:cls.flog super().__new__(cls)return cls.flogdef __init__(self):if not test.flog1:print("初始化")test.flog1 Trueabc test() bcd test() print(abc) pri…

SpingBoot+Mybaits+Vue,更新学习

1.DTO 2.实体类 3.Controller层&#xff0c;UpdatePrize/{id}为接口 4.Service层 5.Impl实现层 之后就可以更新数据了。6.Vue链接接口 7.请求&#xff0c;解析&#xff0c;返回值 8.init方法&#xff0c;初始化使用 增删查与更相仿&#xff0c;只是实现层方法不同增加实现层中的…

[剑指offer]面试题第[35]题[Leetcode][第138题][JAVA][复杂链表的复制][暴力][HashMap][复制链表]

【问题描述】[中等] 【解答思路】 1. 暴力 直接复制 将链表从头节点一个一个复制下去&#xff0c; 在根据记录的总长度num&#xff0c;遍历原来的每个节点的random到尾节点个数count&#xff0c;然后顺序遍历找到新链表的该指针在num-count上 。 时间复杂度&#xff1a;O(N^2…

C语言中的四舍六入五成双 和 四舍五入

%.mf 可以让浮点数保留 m 位小数输出 保留的是精度为 四舍六入五成双 就是 5以下舍弃 5以上进位 而当下一位为5时要讨论&#xff1a; 被化简的小数位后面一位的数字等于5时 要看5前面的数字&#xff0c;若是奇数则进位&#xff0c; 若是偶数则将5舍掉&#xff0c;即修约后…

第二十七期:德国工业4.0眼里“工业互联网”与“智能制造”

工业4.0在德国被认为是第四次工业革命&#xff0c;主要是指&#xff0c;在“智能工厂”利用“智能备”将“智能物料”生产成为“智能产品”&#xff0c;整个过程贯穿以“网络协同”&#xff0c;从而提升生产效率&#xff0c;缩短生产周期&#xff0c;降低生产成本。 工业4.0在德…

【复习】快速幂算法详解

快速幂算法 就是求一个高精度幂次取余时的一个快速算法 比如我们要求aba^bab%m的时候 应用于快速幂算法 也就是将O&#xff08;n&#xff09;转化为O&#xff08;logn&#xff09;的算法 他的原理就是&#xff1a; 252^525 2∗2∗2∗2∗22*2*2*2*22∗2∗2∗2∗2 21012^{101}2…

vue监听移动设备的返回事件

在公共方法文件common.js中实现一个存储当前历史记录的方法 common.js // 存储当前历史记录点,实现控制手机物理返回键的按钮事件 var pushHistory function () {let state {title: ,url: }window.history.pushState(state, state.title, state.url) } vue页面 mounted () {p…

[剑指offer]面试题第[36]题[JAVA][二叉搜索树与双向链表][递归]

【问题描述】[中等] 【解答思路】 中序遍历 时间复杂度&#xff1a;O(N) 空间复杂度&#xff1a;O(N) class Solution {Node pre, head;public Node treeToDoublyList(Node root) {if(root null) return null;dfs(root);head.left pre;pre.right head;return head;}void …

深度学习第一次课-数学

说明&#xff1a;本文是七月算法5月深度学习班第一次课听课笔记。只记录关键知识点&#xff0c;有些没具体展开。帮助复习用。文中使用了老师课件中的公式。 微积分 导数 定义常用函数导数导数法则加法 乘法 除法 链式法则一元函数与多元函数一阶导 一元函数 f(x) 多元函…

使用CUPS打印服务

目录1. 测试环境 22. CUPS介绍 32.1 CUPS的配置文件 32.1.1 cupsd.conf 32.1.2 cups-files.conf 32.1.3 printcap 32.1.4 printers.conf 32.2 SPOOL假脱机 42.3 CUPS 支持各种打印机&#xff0c;包括&#xff1a; 42.4 CUPS的beh 42.5 使用beh 52.6 安装cups&#xff0c;并激活…

深度学习第三次课-梯度下降与反向传播

梯度下降 损失函数可视化 得分函数 fW*X损失函数 cW*X-y 目标 损失函数最小 最优化过程可视化 一维二维 热力图如果损失函数是一个凸函数&#xff0c;例如SVM。凸函数 正系数加和凸函数神经网络 costfunction 非凸 因为系数有正有负。凸优化与最优化…