導遊(yyhs加強版)
題目描述
寧波市的中小學生們在鎮海中學參加程式設計比賽之餘,熱情的主辦方邀請同學們參觀鎮海中學內的各處景點,已知鎮海中學內共有n處景點。現在有n位該校的學生志願承擔導遊和講解任務。每個學生志願者對各個景點的熟悉程度是不同的,如何將n位導遊分配至n處景點,使得總的熟悉程度最大呢?要求每個景點處都有乙個學生導遊。
輸入有若干行:
第一行只有乙個正整數n,表示有n個景點和n個學生導遊。
第二行至第n+1行共n行,每行有n個以空格分隔的正整數。第i+1行的第j個數k(1≤k≤1000),表示第i個學生導遊對景點j的熟悉程度為k。
輸出只有一行,該行只有乙個正整數,表示求得的熟悉程度之和的最大值。
樣例輸入
3 10 6 8 9 2 3 1 7 2
樣例輸出
24提示
【樣例說明】
第1個學生負責第3個景點,第2個學生負責第1個景點,第3個學生負責第2個景點時,熟悉程度總和為24,達到最大值。
【資料限制】
50%的資料,1≤n≤9;100%的資料,1≤n≤17。
題目分析
這道題可用dfs剪枝做但是如果有針對你的剪枝的資料就會被卡點;所以還是有必要寫乙個正解;
正解明顯是狀壓dp用狀態s表示第幾個風景有沒有被去過;其中s中1的個數表示的第幾個導遊去第幾個風景;
這樣就可以很輕鬆的寫出轉移方程;
轉移方程:
f[s]=max]+a[i][j]}(其中i可以通過位運算求的,詳見**
)
#include#include#define lowbit(x) x&-x
using namespace std;
int n;
int f[1<<17];
int a[18][18];
int main()
printf("%d",f[(1
}
奮鬥群群賽 15,16
t2s palindrome t3 exponential notation t4swaps in permutation t5xor sequences t6couple cover t1位置所在 就是給你乙個 01串,讓你找出是否這個串只有乙個 0 如果是,輸出 yes 不然就是輸出 no 但是...
15 16 二分查詢
二分查詢針對乙個有序的資料集合,每次通過和區間的中間元素對比,將待查區間縮小為之前的一半,知道查到要查詢的元素,或者區間縮小為0。查詢的時間複雜度 o logn 待查區間是 n,n 2,n 4,n 8,n 2 k。其中當n 2 k 1時,查詢了k log2n次,並且每次查詢只涉及兩個資料的大小比較操...
劍指offer 第15 16題
輸入乙個整數,輸出該數二進位制表示中1的個數。其中負數用補碼表示。coding utf 8 classsolution defnumberof1 self,n write code here count 0 ifn 0 n n 0xffffffff whilen count 1 n n 1 n re...