時間限制: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...