wikioi 1016 税收与补贴 普及组 2000

原创 2013年12月01日 21:55:35

http://wikioi.com/problem/1016/

    每样商品的价格越低,其销量就会相应增大。现已知某种商品的成本及其在若干价位上的销量(产品不会低于成本销售),并假设相邻价位间销量的变化是线性的且在价格高于给定的最高价位后,销量以某固定数值递减。(我们假设价格及销售量都是整数)

 

    对于某些特殊商品,不可能完全由市场去调节其价格。这时候就需要政府以税收或补贴的方式来控制。(所谓税收或补贴就是对于每个产品收取或给予生产厂家固定金额的货币)

    你是某家咨询公司的项目经理,现在你已经知道政府对某种商品的预期价格,以及在各种价位上的销售情况。要求你确定政府对此商品是应收税还是补贴的最少金额(也为整数),才能使商家在这样一种政府预期的价格上,获取相对其他价位上的最大总利润

 也就是要是补贴或税收后使得预期价的利润最大(其他价格都小于预期价格)

并且我们要注意计算每个价位的销量


样例解释:
在卖28元的时候,总利润是:(28-28+4)*130=520元,
在卖29元的时候,总利润是:(29-28+4)*125=625元,
在卖30元的时候,总利润是:(30-28+4)*120=720元,
在卖31元的时候,总利润是:(31-28+4)*110=770元,
在卖32元的时候,总利润是:(32-28+4)*95=760元,
...
在卖38元的时候,总利润是:(38-28+4)*5=70元,

include <cstdio>
#include <cmath>
#include <cstring>
#include <algorithm>
using namespace std;
int now;
struct goods{
    int p;
    int n;
}g[10000];//记录利润和销量
int x, n, cost;
void add(int a, int b)
 {
    g[now].p = (a);
    g[now].n = (b);
    now++;
}
void init()
{
    int i;
    int a, b;
    int c, d;
    int k, f;
    scanf("%d", &x);
    scanf("%d%d", &a, &b);
    cost = a;
    x -= cost;//每个都减少成本价
    while(scanf("%d%d", &c, &d)==2&&(c != -1 || d != -1))
	{
        k = (d - b) / (c - a);//计算线性
        f = d - c * k;//利润
        for(i = a; i <= c - 1; i++)
	{
            add(i - cost, k * i + f);//计算中间价格
        }
        a = c, b = d;
    }
    scanf("%d", &k);
    for(i = a; (b - (i - a) * k) > 0; i++)
	{
        add(i - cost, (b - (i - a) * k));//最高价后的价格
    	}
}

int main()
{
    int i, j;
    int a, b, k;
    double up = -100000, down = 1000000;
    init();
    for(i = 0; i < now; i++)
	{
        if(g[i].p == x)
	{
            n = g[i].n;
            break;
        }
    }
    for(i = 0; i < now; i++)
	{
        k = 1;//符号
        a = g[i].p * g[i].n - n * x;
        b = n - g[i].n;
        if(b < 0)
	{
            k = -1;
        }
        if(b != 0)//更新
	{        
            if(k == 1)
		{
                up = max(up, (double)a / b);
            }
            else
            {
                down = min(down, (double)a / b);
            }
        }
    }
    if(up <= down)
    {
        if(up > 0)
        {
            printf("%d\n", (int)ceil(up));
        }
        else
        {
            down = fabs(down);
            printf("%d\n", - (int)ceil(down));
        }
    }
    else//不可能
    {
        printf("NO SOLUTION\n");
    }
    return 0;
}




洛谷 P1023 税收与补贴问题

题目 题解 代码题目你是某家咨询公司的项目经理,现在你已经知道政府对某种商品的预期价格,以及在各种价位上的销售情况。要求你确定政府对此商品是应收税还是补贴的最少金额(也为整数),才能使商家在这样一种政...
  • yjy_aii
  • yjy_aii
  • 2017年03月17日 21:48
  • 444

wikioi 1016 税收与补贴 普及组 2000

http://wikioi.com/problem/1016/     每样商品的价格越低,其销量就会相应增大。现已知某种商品的成本及其在若干价位上的销量(产品不会低于成本销售),并假设相邻...
  • u012925197
  • u012925197
  • 2013年12月01日 21:55
  • 874

NOIP 2000 普及组 复赛 税收与补贴问题

NOIP 2000 普及组 复赛 税收与补贴问题
  • mrcrack
  • mrcrack
  • 2017年03月20日 09:47
  • 352

noip2000税收与补贴问题 (模拟,排序)

A1129. 税收与补贴问题 时间限制:1.0s   内存限制:256.0MB   总提交次数:216   AC次数:60   平均分:52.66 将本题分享到:   ...
  • yuyanggo
  • yuyanggo
  • 2015年08月22日 09:49
  • 1059

MS SQL Server中的CONVERT日期格式化大全

MS SQL Server中的CONVERT日期格式化大全.
  • broze
  • broze
  • 2011年07月27日 11:38
  • 391

洛谷 P1439 排列LCS问题

LCS模板
  • chai_jing
  • chai_jing
  • 2016年11月15日 12:54
  • 270

第十周练习-3 税收问题

问题及代码 /* 作者;贾如杉 问题:输入工资,判断应缴纳的税及税后收入 输入:总工资 输出:缴税及税后工资 */#include int main ( ) { double dSala...
  • J17866569260
  • J17866569260
  • 2016年11月06日 16:42
  • 120

洛谷 P1023 税收与补贴问题

模拟
  • Rlt1296
  • Rlt1296
  • 2016年10月11日 15:40
  • 467

洛谷1439 排列LCS问题

洛谷1439 排列LCS问题 本题地址: http://www.luogu.org/problem/show?pid=1439 题目描述 给出1-n的两个排列P1和P2,求它们的最长公共子序列。...
  • hahalidaxin
  • hahalidaxin
  • 2016年03月30日 17:26
  • 98

洛谷 P1023 税收与补贴问题

题目背景每样商品的价格越低,其销量就会相应增大。现已知某种商品的成本及其在若干价位上的销量(产品不会低于成本销售),并假设相邻价位间销量的变化是线性的且在价格高于给定的最高价位后,销量以某固定数值递减...
  • liangzihao1
  • liangzihao1
  • 2017年01月15日 12:23
  • 135
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:wikioi 1016 税收与补贴 普及组 2000
举报原因:
原因补充:

(最多只允许输入30个字)