zoukankan      html  css  js  c++  java
  • 奇怪的贸易

    题目描述

    刚结束了CS战斗的小D又进入了EVE的游戏世界,在游戏中小D是一名商人,每天要做的事情就是在这里买东西,再运到那里去卖.这次小D来到了陌生的X星,X星上有n种货物,小D决定每种都买走一些,他用ai来表示第i种货物购买的数量,X星人对物品的单价有特别的决定方式.他们首先会选择一个基本价x,第一种物品单价为x,第二种物品单价为x2,第三种物品单价为x3……第i种物品单价为xi.结算总价时,你还需要给他们一笔手续费a0,小D不知道自己带的钱是否能够进行这笔交易,所以请你帮助他计算这笔交易他要支付的总金额是多少.

    输入

    x n
    a0
    a1
    a2
    .
    .
    .
    an
    第一行两个数分别表示基准价x (x<=10),物品种数n (n<=100000)
    第二行一个数,手续费a0 (a0<=100)
    接下来的n行每行一个数,第i行表示第i种物品购买的数量(ai<=100)
    输出

    输出结果的最后100位,若不足100位请高位用零补足
    输入样例

    2 3
    4
    3
    2
    1
    输出样例

    0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000026

    说明

    对20%的数据,n<=10 对50%的数据,n<=200 对100%的数据,n<=100000
    .
    .
    .
    .
    .
    .
    分析
    对于第i个物品的单价为xix^i
    那么第i个物品要给的钱为 aixia_i*x^i
    把它们求和再加上a0a_0
    所得的值即为答案
    要用高精度
    .
    .
    .
    .
    .
    程序:

    #include<iostream>
    #include<cstdio>
    using namespace std;
    int x,n,a[100001],jz[101],sum[101];
    
    
    void jia(int y)
    {
    	int w=0;
    	for (int i=1;i<=100;i++)
    	{
    		sum[i]=sum[i]+jz[i]*y+w;
            w=sum[i]/10;
            sum[i]%=10;
    	}
    }
    
    void cheng()
    {
    	int w=0;
        for (int i=1;i<=100;i++)
    	{
    		jz[i]=jz[i]*x+w;
    		w=jz[i]/10;
    		jz[i]%=10;
    	}
    }
    
    int main()
    {
    	scanf("%d%d",&x,&n);
    	scanf("%d",&sum[1]);
    	for (int i=1;i<=n;i++)
    		scanf("%d",&a[i]);
    	jz[1]=x;
    	for (int i=1;i<=n;i++)
    	{
    		jia(a[i]);
    		cheng();
    	}
    	for (int i=100;i>=1;i--)
    		printf("%d",sum[i]);
    	return 0;
    }
    
  • 相关阅读:
    How a webpage is loaded and displayed
    Tree知识总结
    Install Cassandra Locally
    axios接口封装
    Jsonp解决跨域问题
    react使用swiper,解决添加点击事件首位图片点击失效,解决轮播按钮被覆盖问题
    vue 生产环境和测试环境的配置
    vue使用远程在线更新代码
    vue.js axios实现跨域http请求接口
    leetcode每日一题(2020-05-27):974. 和可被 K 整除的子数组
  • 原文地址:https://www.cnblogs.com/YYC-0304/p/10292846.html
Copyright © 2011-2022 走看看