洛谷 P1023 稅收與補貼問題

2022-07-22 05:51:15 字數 2589 閱讀 9474

題目描述

你是某家諮詢公司的專案經理,現在你已經知道**對某種商品的預期**,以及在各種價位上的銷售情況。要求你確定**對此商品是應收稅還是補貼的最少金額(也為整數),才能使商家在這樣一種**預期的**上,獲取相對其他價位上的最大總利潤。

總利潤=單位商品利潤*銷量

單位商品利潤=單位商品** - 單位商品成本 (- 稅金 or + 補貼)

輸入格式:

輸入的第一行為**對某種商品的預期價,第二行有兩個整數,第乙個整數為商品成本,第二個整數為以成本價銷售時的銷售量,以下若干行每行都有兩個整數,第乙個為某價位時的單價,第二個為此時的銷量,以一行-1,-1表示所有已知價位及對應的銷量輸入完畢,輸入的最後一行為乙個單獨的整數表示在已知的最高單價外每公升高一塊錢將減少的銷量。
輸出格式:

輸出有兩種情況:若在**預期價上能得到最大總利潤,則輸出乙個單獨的整數,數的正負表示是補貼還是收稅,數的大小表示補貼或收稅的金額最小值。若有多解,取絕對值最小的輸出。

如在**預期價上不能得到最大總利潤,則輸出「no solution」。

題解:

不得不說一句:「差點題目都沒看懂!!」

草稿打了半天(看了下題解),才明白是道數學題。

以樣例為例,設未知數x,我們要求

(31-28+x)*110>=(28-28+x)*130

(31-28+x)*110>=(29-28+x)*125

(31-28+x)*110>=(30-28+x)*120

(31-28+x)*110>=(32-28+x)*95

這樣便可以解出x的範圍,min<=x<=max,然後根據min和max的正負號來決定輸出哪個。

**:

var

d:array [0..10001] of longint;

x,y:array [0..501] of longint;

n,m,nm,r,l:longint;

min,max:real;

procedure

init;

var o,p,i,j:longint;

begin

readln(n); nm:=0;

readln(o,p);

while (o<>-1) and (p<>-1) do

begin

inc(nm);

x[nm]:=o; y[nm]:=p;

readln(o,p);

end;

readln(m);

r:=x[1]; l:=x[nm]+y[nm] div m;

if (nand (n>l) then

begin

writeln('no solution');

halt;

end;

for i:=1

to nm-1

dobegin

o:=(y[i]-y[i+1]) div (x[i+1]-x[i]);

for j:=x[i] to x[i+1]-1

do d[j]:=y[i]-o*(j-x[i]);

end;

for i:=x[nm] to l do

d[i]:=y[nm]-m*(i-x[nm]);

end;

procedure

main;

var i,o,t:longint;

begin

min:=maxlongint; max:=-maxlongint;

for i:=r to l do

begin

o:=d[n]-d[i];

t:=i*d[i]-n*d[n]-r*(d[i]-d[n]);

if (o>0) and (t/o>max) then

max:=t/o;

if (o<0) and (t/othen

min:=t/o;

end;

if max<-maxlongint then x[0]:=-maxlongint else

if (max>0) and (max-trunc(max)>0) then

x[0]:=trunc(max)+1

else x[0]:=trunc(max);

if min>maxlongint then y[0]:=maxlongint else

if (min<0)and (trunc(min)-min>0) then

y[0]:=trunc(min)-1

else y[0]:=trunc(min);

if (x[0]<0) and (y[0]>0) then

begin

x[0]:=0; y[0]:=0;

end;

if x[0]>y[0] then writeln('no solution') else

if abs(x[0])0]) then writeln(x[0])

else writeln(y[0]);

end;

begin

init;

main;

end.

P1023 稅收與補貼問題

p1023 稅收與補貼問題 正常的自由經濟下,商品銷量會隨著 的變動而變動,此時商家獲得利潤是和商品銷量和 有關的。利潤 成本 銷量 這個函式是有關 的復合函式。對於有些商品而言,不能放任市場隨意定價,需要國家對商品 進行控制。在這種情況下,國家會對這個商品規定乙個 題中稱為預期 商人在得到這個 後...

P1023 稅收與補貼問題

題解 對於這道題目其實只關乎3個價位的利潤 expect 1 expect expect 1 一旦利潤 expect 1 expect expect 1 那麼在這種情況下的稅收和補貼就可以實現要求 解釋一下為啥 和,題目說 這樣一開始按這樣算的 利潤 expect 1 expect 1 但是最後乙個...

Luogu P1023 稅收與補貼問題

每樣商品的 越低,其銷量就會相應增大。現已知某種商品的成本及其在若干價位上的銷量 產品不會低於成本銷售 並假設相鄰價位間銷量的變化是線性的且在 高於給定的最 位後,銷量以某固定數值遞減。我們假設 及銷售量都是整數 對於某些特殊商品,不可能完全由市場去調節其 這時候就需要 以稅收或補貼的方式來控制。所...