揹包問題 時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述 現在有很多物品(它們是可以分割的),我們知道它們每個物品的單位重量的價值v和重量w(1
#include<algorithm>
using namespace std;
struct vw{
int v;
int w;
};
bool cmp(vw p1,vw p2){
if(p1.v<p2.v)
return true;
return false;
}
int main(){
int n,s,m,t,sum;
vw p[10];
cin>>n;
while(n--){
sum=0;
cin>>s>>m;
for(int i=0;i<s;i++)
cin>>p[i].v>>p[i].w;
sort(p,p+s,cmp);
t=m;
int i=s-1;
while(t){
if(t>p[i].w){
sum+=p[i].w*p[i].v;
t-=p[i].w;
i--;
}
else{
sum+=t*p[i].v;
t=0;
}
}
cout<<sum<<endl;
}
}
相關推薦
揹包問題 時間限制:3000 ms | 記憶體限制:65535 KB 難度:3 描述 現在有很多物品(它們是可以分割的),我們知道它們每個物品的單位重量的價值v和重量w(1
#include<iostream>#include<algorithm>using namespace std;struct vw{int v;int w;};bool cmp(vw p1,vw p2){if(p1.v<p2.v)return
韓信點兵 時間限制:3000 ms | 記憶體限制:65535 KB 難度:1 描述 相傳韓信才智過人,從不直接清點自己軍隊的人數,只要讓士兵先後以三人一排、五人一排、七人一排地變換隊形,而他每次只
#include <stdio.h>int main (void){int a,b,c;scanf("%d%d%d",&a,&b,&c);for (int sum=10;sum<=100;sum++){if (sum%3==a&am
素數距離問題 時間限制:3000 ms | 記憶體限制:65535 KB 難度:2 描述 現在給出你一些數,要求你寫出一個程式,輸出這些整數相鄰最近的素數,並輸出其相距長度。如果左右有等距離長度素數
個人理解:判斷輸入的數是不是輸入只要判斷一個數i從2開始到到i*i小於等於輸入的這個數,對於0,1要直接輸出來0,然後找到左右的兩個素數進行比較大小後打印出即可 #include<stdio.h> #include<string.h>#inclu
兩點距離 時間限制:3000 ms | 記憶體限制:65535 KB 難度:1 描述 輸入兩點座標(X1,Y1),(X2,Y2)(0
#include<stdio.h>#include<math.h>int main(void){int N;float a,b,c,d,result;scanf("%d",&N); /*表示有多少組的資料要進行計算*/get
剛哥遇到了感情問題(二) 時間限制:1000 ms | 記憶體限制:65535 KB 難度:1 描述 上一集我們講到 作為工作室老大的剛哥遇到很多女生的追求,你幫他個挑選了個英語成績不錯的物件。在你
# include <stdio.h> # define N 201 char A[][7]={"apple","banana","orange"}; //A->B char B[][5]={"miss","love","kiss"}; int S[]=
超級臺階 時間限制:1000 ms | 記憶體限制:65535 KB 難度:3 描述 有一樓梯共m級,剛開始時你在第一級,若每次只能跨上一級或二級,要走上第m級,共有多少走法? 注:規定從一級到一
#include <stdio.h>int a[41];int fun(int i){if(a[i] != 0)return a[i];else{a[i] = fun(i - 1) + fun(i - 2);return a[i];}}int main(){a[
石子合併(一) 時間限制:1000 ms | 記憶體限制:65535 KB 難度:3 描述 有N堆石子排成一排,每堆石子有一定的數量。現要將N堆石子併成為一堆。合併的過程只能每次將相鄰的兩堆
#include <stdio.h>#include <iostream>//狀態轉移方程:m(i, j) = min(m(i,k),m(k + 1,j)) + sum(i, j)(i <= k < j) #include <str
郵票分你一半 時間限制:1000 ms | 記憶體限制:65535 KB 難度:3 描述 小珂最近收集了些郵票,他想把其中的一些給他的好朋友小明。每張郵票上都有分值,他們想把這些郵票分成兩
#include<stdio.h>#include<string.h>using namespace std;int val[500001]; int main(){int n,m,i,j,sum;int a[1001];scanf("%d",&am
收藏 | 雲端計算領域最全常用術語(中英文對照),你知道多少個?
“雲”發展得如此火熱,“雲”術語層出不窮。為了緊跟上科技潮流,做雲端計算領域的知識達人,小編整理了45個雲端計算領域常用的術語(含中英文對照)及其解釋,以供愛學習的你們參考,一起讓科技知識儲備量上升一個level~ 本文內容主要包含: •關於虛擬化 •關於雲端計算技術 •關於雲
電子工程師的出路在哪裡?幹了兩年電子工程師(硬體開發),不知道以後方向在哪裡,挺迷茫!
電子工程師們,你還在座位上埋頭苦幹,跟與一堆資料跟程式打交道嗎? 這樣下去不行,現在生活想過得有滋有味,靠工資不如靠收入,做技術是吃腦力飯,壓力大,頭髮大把大把掉,工資永遠那個數,跳來跳去無法突破自我。 什麼是電子工程師?電子工程師指從事各類電子裝置和資訊系統研究、教
月餅 (25) 時間限制 1000 ms 記憶體限制 32768 KB 程式碼長度限制 100 KB 判斷程式 Standard (來自 小小)
題目描述 月餅是中國人在中秋佳節時吃的一種傳統食品,不同地區有許多不同風味的月餅。現給定所有種類月餅的庫存量、總售價、以及市場的最大需 求量,請你計算可以獲得的最大收益是多少。 注意:銷售時允許取出一部分庫存。樣例給出的情形是這樣的:假如我們有3種月餅,其庫存量分別為18
組個最小數 (20) 時間限制 1000 ms 記憶體限制 32768 KB 程式碼長度限制 100 KB 判斷程式 Standard (來自 小小)
題目描述 給定數字0-9各若干個。你可以以任意順序排列這些數字,但必須全部使用。目標是使得最後得到的數儘可能小(注意0不能做首位)。例如: 給定兩個0,兩個1,三個5,一個8,我們得到的最小的數就是10015558。 現給定數字,請編寫程式輸出能夠組成的最小的數。
程式執行時間(15) 時間限制 1000 ms 記憶體限制 32768 KB 程式碼長度限制 100 KB 判斷程式 Standard (來自 小小)
題目描述 要獲得一個C語言程式的執行時間,常用的方法是呼叫標頭檔案time.h,其中提供了clock()函式,可以捕捉從程式開始執行到clock()被呼叫時所 耗費的時間。這個時間單位是clock tick,即“時鐘打點”。同時還有一個常數CLK_TCK,給出了機器時鐘每秒
福爾摩斯的約會 (20) 時間限制 1000 ms 記憶體限制 32768 KB 程式碼長度限制 100 KB 判斷程式 Standard (來自 小小)
題目描述 大偵探福爾摩斯接到一張奇怪的字條:“我們約會吧! 3485djDkxh4hhGE 2984akDfkkkkggEdsb s&hgsfdk d&Hyscvnm”。大偵探很 快就明白了,字條上奇怪的亂碼實際上就是約會的時間“星期四 14:04”,因
科學計數法 (20) 時間限制 1000 ms 記憶體限制 32768 KB 程式碼長度限制 100 KB 判斷程式 Standard (來自 小小)
題目描述 科學計數法是科學家用來表示很大或很小的數字的一種方便的方法,其滿足正則表示式[+-][1-9]"."[0-9]+E[+-][0-9]+,即數字的整數部分 只有1位,小數部分至少有1位,該數字及其指數部分的正負號即使對正數也必定明確給出。 現以科學計數法的格式給出
A+B和C (15)間限 時制 1000 ms 記憶體限制 32768 KB 程式碼長度限制 100 KB
題目描述給定一系列正整數,請按要求對數字進行分類,並輸出以下5個數字: A1 = 能被5整除的數字中所有偶數的和; A2 = 將被5除後餘1的數字按給出順序進行交錯求和,即計算n1-n2+n3-n4...; A3 = 被5除後餘2的數字的個數; A4 = 被5除後
人口普查(20) 時間限制 1000 ms 記憶體限制 32768 KB 程式碼長度限制 100 KB 判斷程式 Standard (來自 小小)
題目描述 某城鎮進行人口普查,得到了全體居民的生日。現請你寫個程式,找出鎮上最年長和最年輕的人。 這裡確保每個輸入的日期都是合法的,但不一定是合理的——假設已知鎮上沒有超過200歲的老人,而今天是2014年9月6日,所以超過200 歲的生日和未出生的生日都是不合理的,應該
1016. 部分A+B (15) 時間限制 1000 ms 記憶體限制 32768 KB 程式碼長度限制 100 KB 判斷程式 Standard (來自 小小)
題目描述正整數A的“DA(為1位整數)部分”定義為由A中所有DA組成的新整數PA。例如:給定A = 3862767,DA = 6,則A的“6部分”PA是66,因為A中有2個6。 現給定A、DA、B、DB,請編寫程式計算PA + PB。輸入描述:輸入在一行中依次給出A、D
Java併發程式設計基礎//程序:每個程序都有獨立的程式碼和資料空間(程序上下文),程序間的切換開銷比較大,一個程序包含1-n個執行緒 //執行緒:同一類執行緒共享程式碼和資料空間,每個執行緒擁有獨立的執行棧和程式計
1.實現多執行緒的兩種方式: (1)繼承Thread類; (2)實現Runnable介面 //程序:每個程序都有獨立的程式碼和資料空間(程序上下文),程序間的切換開銷比較大,一個程序包含1-n個執行緒 //執行緒:同一類執行緒共享程式碼和資料空間,每個執行緒擁有獨立的執行
定義一個汽車類Vehicle,要求如下:[選做題] 2.1屬性包括:汽車品牌brand(String型別)、顏色color(String型別)和速度speed(double型別),並且所有屬性為私有。
private String brand; private String color; private double speed=0; Vehicle(String brand, String color) { this.brand = brand; this.colo