1. 程式人生 > >【普及組模擬賽】取物品

【普及組模擬賽】取物品

題目描述

現在有 n 個物品(有可能相同),請程式設計計算從中取 k 個出來, 有多少種不同的取法。

輸入

輸入檔案有兩行。
第一行包含兩個整數 n,k(2<=n<=30,0<=k<=n) 。
第二行包含 n 個整數, 表示物品的編號(範圍 1..1000)。編號相同的物品看作同一種物品。

輸出

輸出僅一行一個整數,即方案數。

思路

先將每一種數的個數打出來 a[i] 表示第i種數的數量 f[i,j] 表示前i種物品取j個的方案數,則狀態轉移方程為 f[i,j]=sum(f[i1,jk])k=0..a[i]

#include <stdio.h>
using namespace std; int a[1000],f[1000][1000],b[1000]; int n,m,x,t; int xx() { int i,j; for (i=1;i<=n;i++) { if (b[i]==0) { b[i]=x; t++; a[i]++; return 0; } if (x==b[i]) { a[i]++; return
0; } } } int main() { freopen("Comb.in","r", stdin); freopen("Comb.out","w", stdout); t=0; scanf("%d%d",&n,&m); for (int i=1;i<=n;i++) { scanf("%d",&x); xx(); } for (int i=0;i<=n;i++) f[i][0]=1; for (int i=1;i<=t;i++) for
(int j=1;j<=m;j++) { for (int k=0;k<=a[i];k++) if (j>=k) f[i][j]=f[i-1][j-k]+f[i][j]; } printf("%d",f[t][m]); return 0; }

相關推薦

普及模擬物品

題目描述 現在有 n 個物品(有可能相同),請程式設計計算從中取 k 個出來, 有多少種不同的取法。 輸入 輸入檔案有兩行。 第一行包含兩個整數 n,k(2<=n<=30,0<

初中OJ1994普及模擬小口口矩陣

題目被我吃了。。。 因為直接暴力會超時,所以我們要想一下優化。 因為列舉的順序是這樣的: 所以我們就可以很輕鬆(?)地發現一個規律: 當列舉一個位置時,被改變的只有當前位置,當前位置的上一格

普及模擬Note

題目描述 數學課上,D突然想到一件很重要的事情要告訴Z,但是她們分別坐在教室的左前方和右後方,這可怎麼辦呢? D決定傳紙條! 但是問題又出現了,D要告知Z的是個機密,D不希望有很多人知道。可是由於紙條必須經過其它同學,所以D只

JZOJ(中山紀中) 1984. 普及模擬遊戲(atlantis.pas/cpp)

題目: http://blog.csdn.net/qq_35786326/article/details/79211470 題意: 求每一局遊戲的勝者是誰?而如果是MaoLaoDa勝,那麼還有輸出t

初中OJ19972015.8.3普及模擬WZK打雪仗(war)

按照國際慣例,不發題目。。。 表示這道題我也是想了一段時間後才想出來。 假設有這樣6個人在打雪仗: 這樣是一種情況。 這樣又是一種情況。 但是這樣就不行。 為什麼呢?因為第1個人和第5個人

初中OJ19982015.8.3普及模擬飢餓的WZK(hunger)

題目自行腦補。。。 表示這就是一道十分水(he)比(he)的DP題。 先按照開始區間為第一關鍵字從小到大,結束區間為第二關鍵字從小到大快排。 之後直接來一發DP(F[i]表示從1到i的區間能獲得

2017年11月1日普及模擬解題報告

第一題 I Got a Matrix! 大意 給定一個長和寬都小於等於100的矩陣,求出矩陣邊緣的和 思路 暴力模擬 程式碼 #include<cstdio> using namespace std; int a,n,m,

2017.1.20初中部 普及模擬C 晒衣服 題解

原題: 題目描述: 洗完衣服後,你就要弄乾衣服。衣服在自然條件下用1個單位的時間可以晒乾A點溼度。現在買了1臺烘衣機,使用烘衣機可以讓你用1個單位的時間使1件衣服除開自然晒乾的A點溼度外,還可烘乾B點溼度,但在1個單位的時間內只能對1件衣服使用。

2017.1.12初中部 普及模擬C 簡單遊戲 題解

原題: 題目描述: Charles和sunny在玩一個簡單的遊戲。若給出1~n的一個排列A,則將A1、A2相加,A2、A3相加……An-1、An相加,則得到一組n-1個元素的數列B;再將B1、B2相加,B2、B3相加,Bn-2、Bn-1相加,則得到一

NOIP2017普及正式跳房子

這一題很有它的價值,我都要認真思考一番才能夠想到方法。 先講一下題目大意 題目描述 跳房子,也叫跳飛機,是一種世界性的兒童遊戲,也是中國民間傳統的體育遊戲之一。跳房子的遊戲規則如下: 在地面上確定一個起點,然後在起點右側畫 n 個格子,這些格子都在同一條

NOIP2017普及正式棋盤

此題依舊簡單,用一個深搜+記憶化就可以AC了! var way:array[1..4,1..2] of longint=((1,0),(0,1),(-1,0),(0,-1)); a,zx:array[0..101,0..101] of longin

NOIP2017普及正式 圖書管理員

這一題有很多人都搞不懂意思。但是,只要是認真看了題的人,就不會有什麼錯了! 這一題直接用暴力是可以過的,不需要wjq講的什麼字典樹(不過空閒者可“自殘”一下) var ycl:array[1..8] of longint=(10,100,1000,10000,10000

ZROI 普及模擬02總結

自己 深入 splay 二叉 line 出了 .com 自己的 超時 ZROI 普及組模擬賽02總結 先放[網址][http://zhengruioi.com/contest/96] 可能是有一段時間沒有打這種正式的比賽了,今天打的很奇怪。。。 T1 模擬水題 既然是普及組

自創模擬set1 題解

T2 本來想在 $T2$ 搞一道動態規劃題,但現在好像不是了……出成了一道毒瘤結論題。 題目背景和板子啥的來源於我以前在luogu存的一道自創題。 100pts 這個點甚至卡 $O(n*log(n^2))$,而二分肯定是不能去掉的,所以我們考慮去掉鏈上對區間答案的維護的那一維 $log$。 我們重新

OIBH杯第三次普及模擬T3 最大約數和

T3: 最大約數和  題目描述 選取和不超過S的若干個不同的正整數,使得所有數的約數(不含它本身)之和最大。 輸入格式 輸入一個正整數S。 輸出格式 輸出最大的約數之和。

重慶市NOIP模擬資料

資料 時間限制: 1 Sec 記憶體限制: 128 MB 提交: 58 解決: 31 [提交][狀態][我的提交] 題目描述 Mr_H 出了一道資訊學競賽題,就是給 n 個數排序。輸入格式是這樣的: 試題有若干組資料。每組資料的第一個是一個整數

計蒜客信息學3月普及模擬

判斷 code 鏈接 cdc pin 技術 uwa names -418 A. 斷幺九 題目鏈接 分值:100 時間限制:1000ms 測試點數目:10 B. 銹湖  題目鏈接 分值:100 時間限制:2000ms 測試點數目:10

noip模擬地球危機(2018年第九屆藍橋杯C/C++A 三體攻擊)

題目描述 三體人將對地球發起攻擊。為了抵禦攻擊,地球人派出了 $A × B × C$ 艘戰艦,在太 空中排成一個 $A$ 層 $B$ 行 $C$ 列的立方體。其中,第 $i$ 層第 $j$ 行第 $k$ 列的戰艦(記為戰艦 $d(i, j,k)$)的生命值為 $d_{i, j,k}$。 三體人將會對地球發

2041. 2016.5.21普及模擬魔方工廠

題目描述        蘭姐姐是來自火星的女王。       相信你們一定對蘭姐姐不熟悉,她統領整個火星,在各方面擁有最高權力。       很久很久以前,蘭爸爸是火星的國王,去世以後,兩個女