牛客 牛牛的揹包 貪心演算法

2021-10-08 01:13:23 字數 1389 閱讀 4840

時間限制:c/c++ 1秒,其他語言2秒

空間限制:c/c++ 524288k,其他語言1048576k

64bit io format: %lld

題目描述

牛牛有最多50個物品,每個物品有乙個type標號,並且有乙個taste值,現在要求選擇若干個物品放進揹包使得x * y最大,x為選擇的不同type的數量,y為總的taste值之和

輸入描述:

第一行輸入乙個整數n表示物品的數量(1 ≤ n ≤ 50)

第二行輸入 n個整數typei表示每個物品的型別(1 ≤ typei ≤ 100)

第三行輸入n個整數tastei(-100000 ≤ tastei ≤ 100000)

輸出描述:

輸出乙個整數

輸入:

312

374-

1

輸出:

30
備註:

子任務一30分:n,m<=10

子任務二30分:n,m<=20

子任務三40分:n,m<=50

思路:先進行sort排序,按照taste進行降序,因為如果兩個物品,type一樣,而taste不一樣且都為負數,應該先用最大的(因為taste為負數的情況只有增加x方能彌補y的減少,所以type一樣,只能選乙個),taste為整數則一定加入,看**

**:

#include

using

namespace std;

typedef

long

long

int ll;

const ll n=

100;

int n;

struct node

//定義優先順序

}stu[n]

;bool vis[n]

;//標記陣列

intmain()

for(

int i=

1;i<=n;i++

)sort

(stu+

1,stu+

1+n)

;int x=

0,y=0;

for(

int i=

1;i<=n;i++

)elseif(

!vis[stu[i]

.l]&&

(x+1)*

(y+stu[i]

.w)>x*y)

//先判斷下是否可以增加x*y

} cout

}

牛客網 牛牛的揹包

題目描述 牛牛準備參加學校組織的春遊,出發前牛牛準備往揹包裡裝入一些零食,牛牛的揹包容量為w。牛牛家裡一共有n袋零食,第i袋零食體積為v i 牛牛想知道在總體積不超過揹包容量的情況下,他一共有多少種零食放法 總體積為0也算一種放法 輸入描述 輸入包括兩行 第一行為兩個正整數n和w 1 n 30,1 ...

貪心演算法 牛客倒水

時間限制 c c 1秒,其他語言2秒 空間限制 c c 32768k,其他語言65536k 64bit io format lld 題目描述 有乙個大水缸,裡面水的溫度為t單位,體積為c公升。另有n杯水 假設每個杯子的容量是無限的 每杯水的溫度為t i 單位,體積為c i 公升。現在要把大水缸的水倒...

揹包問題(貪心演算法)

揹包問題 程式8 4 2.cpp 定義控制台應用程式的入口點。揹包問題 貪心演算法 include stdafx.h define maxnumber 20 typedef struct node object float find object wp,int n,float m i 0 while...