首页 > 其他分享 >luoguP1163-二分

luoguP1163-二分

时间:2024-05-15 15:55:01浏览次数:10  
标签:二分 right frac luoguP1163 公式 mid leq left

银行贷款

题目链接:https://www.luogu.com.cn/problem/P1163

本题思路:

orz公式

数学公式给出n,m,k,求贷款者向银行支付的利率
p,使得: $ \sum_{i = 1}^{k
}m * [\frac{1}{1 + p}]^{i} $,通过化简(根据等比数列的求和公式)我们有: $ m\frac{1-\left(\frac{1}{1+p}\right)^k}{1-\frac{1}{1+p}} = n $

数学公式: $ \sum_{i=1}^{k} ar^{i-1} = a\frac{1-r^k}{1-r} $
对于第一个公式有:
$ \sum_{i=1}^{k} m \left(\frac{1}{1+p}\right)^i = n $
将公式转换为等比数列的形式:设a = m 、r = $ \frac{1}{1+p} $, k是求和的项数。
这样,我们的等比数列就可以表示为: $ (m, m\frac{1}{1+p}, m\left(\frac{1}{1+p}\right)^2, \ldots, m\left(\frac{1}{1+p}\right)^{k-1} ) $

然后,对等比数列求和公式的右侧进行化简: $ m\frac{1-\left(\frac{1}{1+p}\right)^k}{\frac{p}{1+p}} = n $

$ m\frac{1-\left(\frac{1}{1+p}\right)^k}{p} = n $

进一步简化:
数学公式: $ \left(\frac{1}{1+p}\right)^k = 1 - \frac{n}{m}p $

本题思路:

题目描述

当一个人从银行贷款后,在一段时间内他(她)将不得不每月偿还固定的分期付款。这个问题要求计算出贷款者向银行支付的利率。假设利率按月累计。

输入格式

三个用空格隔开的正整数。

第一个整数表示贷款的原值 \(w_0\),第二个整数表示每月支付的分期付款金额 \(w\),第三个整数表示分期付款还清贷款所需的总月数 \(m\)。

输出格式

一个实数,表示该贷款的月利率(用百分数表示),四舍五入精确到 \(0.1\%\)。

数据保证答案不超过 \(300.0\%\)。

样例 #1

样例输入 #1

1000 100 12

样例输出 #1

2.9

提示

数据保证,\(1 \leq w_0, w\leq 2^{31}-1\),\(1 \leq m\leq 3000\)。

ACcode:

#include <iostream>
#include <cmath>

using namespace std;

double n, m, k, l = 0, r = 10;//注意考虑n,m,k在公式关系可能为double

bool bs(double mid) {//代入orz公式计算
    return pow(1.0 / (1.0 + mid), k) >= 1.0 - n / m * mid; 
}

int main()
{
    cin >> n >> m >> k;

    while(r - l >= 0.0001) {
        double mid = (l + r) / 2;
        if(bs(mid)) r = mid;
        else l = mid;
    }
    printf("%.1lf", l * 100);
    return 0;
}

·························································

当时思路:

再一次二分答案卡住坐牢,(应该是看到了)但没有理解利率按月累计(又好像影响不大)...脑子wa掉了,然后就是坐牢推不出公式,快进到题解模式

标签:二分,right,frac,luoguP1163,公式,mid,leq,left
From: https://www.cnblogs.com/OVSolitario-io/p/18193426

相关文章

  • P6577 【模板】二分图最大权完美匹配 (KM)
    $\quad$初看就发现不对劲了,模板紫题,一看就不简单,就交了个裸\(KM\),哎,果然\(T\)了。$\quad$然后就是大力卡常(当然\(O(n^4)\))的复杂度不是卡常能解决的。遂看题解,发现一个据说\(O(n^3)\)的复杂度的\(KM\),也是非常抽象。具体解释详见https://www.luogu.com.cn/article/ip2m1gu......
  • 二分图
    关于二分图判断是否为二分图左部和右部的点之间不存在连边,即不存在奇环;codes点击查看代码#include<bits/stdc++.h>usingnamespacestd;constintmaxn=1e5+10;intn,m,tot;intto[maxn*2],nxt[maxn*2],w[maxn*2],h[maxn];intcol[maxn],x[maxn],y[maxn],z[maxn];......
  • 高一下三调模拟赛5.13(附关于二分图匈牙利建边的详细思考)
    前言注:本篇为知识性内容,A题附详解关于匈牙利算法求最大独立子集难以理解的建边问题的思考,若有不当之处感谢指出。暂时只写了A篇题解,以供帮助大家理解相关问题,剩余题解会进行补充。又是小集训的一周,总要伴随着模拟赛...还是五道题目:A.攻击装置B.循环C.漫步D.穿越E.结......
  • 二分图
    二分图总结一是太长时间不写博客,觉得对不起这个账号二是记录一下对二分图的建边和含义的理解首先我们要知道二分图的三个性质1.二分图的一组匹配M是最大匹配,当且仅当图中不存在M的增广路。2.二分图中最小点覆盖数=最大匹配数3.二分图中最大独立集数=n-最小点覆盖数、......
  • # 如何优雅的写出二分
    二分查找二分法查找单个值题目:给定一个n个有序的(升序)数组nums和一个目标值target,写一个函数搜索nums中target,如果目标值存在返回下标,否则返回-1;关键词:有序数组,无重复元素难点:区间选择及循环不变量在每次循环中要坚持循环不变量原则(名字不重要,怎么做很重要)  如果我们在......
  • 二分图(例题)
    https://www.cnblogs.com/kuangbiaopilihu/p/18184536$\quad$这里不再介绍二分图的基础知识,只是一些例题的解释。$\quad$当然,这道题可以用二分+并查集来解决。但这是二分图专辑,所以介绍一下二分图做法。$\quad$首先如果两个罪犯之间有仇恨,那么当他们不在同一......
  • 洛谷 P2824 [HEOI2016/TJOI2016] 排序(二分,线段树)
    传送门解题思路据说是经典思路:把多次排序转化成二分+01序列。首先二分所求位置的数字是啥,将大于mid的数字变成1,将小于等于mid的数字变成0。这样在排序的时候就相当于统计区间里的1的个数(区间和),然后区间全部变成0或者1。也就是区间修改,区间求和,线段树可以实现。AC代码#inclu......
  • 匈牙利算法模板(二分图)
    booldfs(intnow){for(inti=h[now];i;i=nxt[i]){intt=to[i];//这里不用考虑会有回到父结点的边的问题//因为每次都是从左部找邻接点if(!vis[t]){vis[t]=true;//如果邻接点t是非匹配点,则找到一条增广路,匹配......
  • 加练日记2-二分,双指针,排序
    二分模板 #include<bits/stdc++.h>usingnamespacestd;usingll=longlong;constllMOD=998244353;lln,m;constllN=2e5+9;lla[N];llv[N];intf(llmid){ llans=0,pre=-1e9; for(inti=1;i<=n;i++){ if(a[i]-pre>=mid)ans++,pre=a[i......
  • 蓝桥杯-递增三元组(三种解法,二分, 双指针, 前缀和)
    给定三个整数数组A=[A1,A2,…AN],B=[B1,B2,…BN],C=[C1,C2,…CN],请你统计有多少个三元组(i,j,k)满足:1≤i,j,k≤NAi<Bj<Ck输入格式第一行包含一个整数N。第二行包含N个整数A1,A2,…AN。第三行包含N个整数B1,B2,…BN。第四行包含N个整数C1,C2,…CN。输出格......