国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

洛谷——P1023 稅收與補(bǔ)貼問題

2019-11-14 09:52:21
字體:
供稿:網(wǎng)友

題目描述

你是某家咨詢公司的項(xiàng)目經(jīng)理,現(xiàn)在你已經(jīng)知道政府對(duì)某種商品的預(yù)期價(jià)格,以及在各種價(jià)位上的銷售情況。要求你確定政府對(duì)此商品是應(yīng)收稅還是補(bǔ)貼的最少金額(也為整數(shù)),才能使商家在這樣一種政府預(yù)期的價(jià)格上,獲取相對(duì)其他價(jià)位上的最大總利潤(rùn)。總利潤(rùn)=單位商品利潤(rùn)*銷量單位商品利潤(rùn)=單位商品價(jià)格 - 單位商品成本 (- 稅金 or + 補(bǔ)貼)

輸入格式:

輸入的第一行為政府對(duì)某種商品的預(yù)期價(jià),第二行有兩個(gè)整數(shù),第一個(gè)整數(shù)為商品成本,第二個(gè)整數(shù)為以成本價(jià)銷售時(shí)的銷售量,以下若干行每行都有兩個(gè)整數(shù),第一個(gè)為某價(jià)位時(shí)的單價(jià),第二個(gè)為此時(shí)的銷量,以一行-1,-1表示所有已知價(jià)位及對(duì)應(yīng)的銷量輸入完畢,輸入的最后一行為一個(gè)單獨(dú)的整數(shù)表示在已知的最高單價(jià)外每升高一塊錢將減少的銷量。

輸出格式:

輸出有兩種情況:若在政府預(yù)期價(jià)上能得到最大總利潤(rùn),則輸出一個(gè)單獨(dú)的整數(shù),數(shù)的正負(fù)表示是補(bǔ)貼還是收稅,數(shù)的大小表示補(bǔ)貼或收稅的金額最小值。若有多解,取絕對(duì)值最小的輸出。如在政府預(yù)期價(jià)上不能得到最大總利潤(rùn),則輸出“NO SOLUTION”。

題解:

不得不說一句:“差點(diǎn)題目都沒看懂!!”草稿打了半天(看了下題解),才明白是道數(shù)學(xué)題。以樣例為例,設(shè)未知數(shù)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,然后根據(jù)min和max的正負(fù)號(hào)來決定輸出哪個(gè)。

代碼:

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 (n<r) and (n>l) then begin writeln('NO SOLUTION'); halt; end; for i:=1 to nm-1 do begin 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/o<min) then 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])<abs(y[0]) then writeln(x[0]) else writeln(y[0]);end;begin init; main; end.
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 庆城县| 上高县| 安平县| 怀宁县| 舞阳县| 南江县| 凭祥市| 遂宁市| 齐齐哈尔市| 东乌珠穆沁旗| 宁南县| 青海省| 调兵山市| 长葛市| 紫金县| 行唐县| 林甸县| 汝阳县| 绿春县| 额敏县| 安西县| 呼图壁县| 曲麻莱县| 从江县| 怀宁县| 苍山县| 疏附县| 隆回县| 新竹县| 保德县| 宜春市| 禄劝| 宜良县| 临沭县| 谷城县| 通许县| 晋州市| 成安县| 新巴尔虎右旗| 山西省| 新平|