時間限制:1000MS 記憶體限制:262144KB
題目描述
wwd有很多電話要打。
wwd的手機聯系人一共有 n 個,每個聯系人有一個電話號碼 si 和一個數字 mi ,表示wwd一天要給她打幾次電話。
由于wwd的手機壞了,電話號碼只能通過輸入數字來打,因此wwd每天要花大量時間輸入數字。wwd想出了一個辦法,那就是給手機加裝 k 個按鈕,每個按鈕可以打出一連串數字。但是對于每一個電話,只能使用一個按鈕,并且只有在沒有輸入任何數字的情況下才能使用。
wwd想要知道,在最優情況下,她一天最少要輸入幾個數字(使用加裝的按鈕輸入的不算)。
輸入格式
第一行兩個正整數 n 和 k ,表示聯系人個數以及可以加裝的按鈕數。
接下來 n 行,每行一個只包含數字的字串 si ,以及一個正整數 mi 。
輸出格式
一行即答案。
樣例 1 輸入
3 1
0001 5
001 4
01 1
樣例 1 輸出
14
樣例 2 輸入
3 1
0001 5
001 6
01 1
樣例 2 輸出
18
資料規模與約定
本題采用捆綁測驗。
設電話號碼總長度為 L 。
保證 n≤1000 ,L≤1000 ,k≤20 ,mi≤1000 。
Subtask1(20pts)
n≤10 ,L≤100 。
Subtask2(20pts)
n≤100 ,L≤100 。
Subtask3(20pts)
n≤500 ,L≤500 。
Subtask4(40pts)
無特殊限制。
uj5u.com熱心網友回復:
#include<cstdio>using namespace std;
int main()
{
short z=getchar(),n,i,v,j,k,b[k],c[1000],a[n][1001];
scanf("%d%d",&n,&k);
for(i=0;i<n;i++)
{
for(z=0;z!=' ';z++ )
{
scanf("%d",&a[i][z]);
}
scanf("%d",&b[i]);
}
for(i=0;i<n;i++)
{
for( j=0;j<=z;j++)
c[i]=b[i]*a[i][j];
}
for(i=1; i<n; ++i)
for(j=i; j<=n; ++j)
if(c[i]<c[j])
{
int t=c[i];
c[i]=c[j];
c[j]=t;
}
for(i=k;i<n;i++)
v=c[i]+v;
printf("%d",v);
return 0;
}
uj5u.com熱心網友回復:
求大神看看我的代碼有什么問題uj5u.com熱心網友回復:
你這段代碼我是看不下去了,你這是C++代碼還是C代碼,而且里面很多最基本的東西都沒掌握,建議你先別急著寫復雜的代碼,先上點課把基礎打好在說吧轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/78823.html
標籤:C++ 語言
上一篇:VS2017 PCH警告:頭停止點不在檔案范圍內。未生成IntelliSense PCH檔案
下一篇:c語言請教大佬
