篮球校赛(状压dp)

篮球校赛

题目描述

JWJU注重培养学生的“唱,跳,rap,篮球”能力。于是每年JWJU都会举办篮球校赛,来给同学们一个切磋篮球技术的平台。校赛冠军的奖励是看wls女装一次,为了这个目标,大家都努力训练,希望自己能看到wls女装。

教练mymy手下有 nn 名队员,现在他要挑选 55 人组成一个篮球队来参赛。众所周知,一个篮球队伍有五个不同的位置(控球后卫,得分后卫,小前锋,大前锋,中锋),现在教练mymy给出每名队员在每个位置的能力。

注:如果一个队员作为控球后卫出战,则他只能发挥他的控球后卫的能力值。(其他位置类似)

教练mymy想让你帮忙选择出 55 名队员,分别放置在队伍中的不同位置。求他们组成的队伍的最大能力值之和。

输入描述

输出第一行包含一个正整数 nn (5 \le n \le 10^{5}5≤n≤105)。

接下来包含 nn 行,每行包含 55 个正整数,描述每个队员在每个位置的能力值。每项能力值的取值范围都在 [1,10^{9}][1,109]。

输出描述

输出一行一个正整数代表组成的队伍的最大能力值之和。

样例输入 1

5
10 11 12 15 10
10 15 12 11 10
15 10 15 15 15
19 20 114000 10 300
14 10 155 200 469

样例输出 1

114514

题目思路:其实本题也可以直接排序后dfs做,因为最后选出的五个人一定有一项能力是排名前五的。

dp[i][j]表示前i行五个位置状态为j的最大能力值。

  if(!(j>>k&1))//如果状态为j的第k位为空
    dp[i][j|(1<<k)] = max(dp[i][j|(1<<k)],dp[i-1][j]+a[i][k]);//(状态转移)

 最后答案为dp[n][1<<5-1].

#include<bits/stdc++.h>
#define ll long long
#define ull unsigned long long
using namespace std;
ll dp[100100][32],n,a[100010][5];
int main()
{
    cin>>n;
    for(int i = 1;i<=n;i++)
        for(int j = 0;j<5;j++)
            scanf("%d",&a[i][j]);
    for(int i = 1;i<=n;i++)
    {
        for(int j = 0;j<32;j++)
            dp[i][j] = dp[i-1][j];
        for(int j = 0;j<32;j++)
            for(int k = 0;k<5;k++)
                if(!(j>>k&1))
                    dp[i][j|(1<<k)] = max(dp[i][j|(1<<k)],dp[i-1][j]+a[i][k]);
    }
    cout<<dp[n][31];
    return 0;
}

原文地址:https://www.cnblogs.com/loganacmer/p/11296928.html

时间: 2024-10-07 22:05:36

篮球校赛(状压dp)的相关文章

2015广东工业大学ACM校赛 I 游戏王 (状压dp)

Problem I: 游戏王 Description 小学的时候,Stubird非常喜欢玩游戏王,有一天,他发现了一个绝佳的连锁组合,这个连锁组合需要6张卡, 可是他一张都没有,但是他的那些朋友们有,不过当然,他们不会白给,不过也不排除有人和他交情好,送给他了. 不过他们有成全别人的美德,当他们看到Stubird已经有某些他们喜欢的卡的时候,他们会给他优惠,或者更贵也说不定 嘛不过,你可以把有的卡片藏起来,不告诉他们,来获得更低的价格. 问他最少需要多少钱才可以集齐所有的卡. Input 第一行

nyoj1273 河南省第九届省赛_&quot;宣传墙&quot;、状压DP+矩阵幂加速

宣传墙 时间限制:1000 ms  |  内存限制:65535 KB 难度:4 描述 ALPHA 小镇风景美丽,道路整齐,干净,到此旅游的游客特别多.CBA 镇长准备在一条道路南 面 4*N 的墙上做一系列的宣传.为了统一规划,CBA 镇长要求每个宣传栏只能占相邻的两个方格 位置.但这条道路被另一条道路分割成左右两段.CBA 镇长想知道,若每个位置都贴上宣传栏, 左右两段各有有多少种不同的张贴方案. 例如: N=6,M=3, K=2, 左,右边各有 5 种不同的张贴方案 输入 第一行: T 表示

[hdu 4899]14年多校第四场C Hero meet devil 状压DP

Time Limit: 16000/8000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others) Total Submission(s): 122    Accepted Submission(s): 49 Problem Description There is an old country and the king fell in love with a devil. The devil always asks th

HDU 5131 Little Zu Chongzhi&#39;s Triangles (状压DP +2014广州现场赛)

题目链接:HDU 5131 Little Zu Chongzhi's Triangles 题意:给出一些线段,在其中选出3根组成三角形,问用这些线段组成的所有三角形的最大面积是多少. 7 3 4 5 3 4 5 90 两个三角形是(3,3,4),(5,5,4). 思路:N最大12,状态压缩,把所有可能组成的三角形存起来.A&B==0则说明A|B状态是有效的. 贪心也能过..为什么? AC代码: #include <stdio.h> #include <string.h> #

【弱校胡策】2016.4.14 (bzoj2164)最短路+状压DP+矩阵乘法+高斯消元+树链剖分+线段树+背包DP

cyyz&qhyz&lwyz&gryz弱校胡策 命题人:cyyz ws_fqk T3暴力写挫了 50+10+0滚粗辣! 奇妙的约会(appointment.cpp/c/pas) [问题描述] DQS和sxb在网上结识后成为了非常好的朋友,并且都有着惊人 的OI水平.在NOI2333的比赛中,两人均拿到了金牌,并保送进入 HU/PKU.于是两人决定在这喜大普奔的时刻进行面基. NOI2333参赛选手众多,所以安排了n个考点,DQS在1号考点, 而sxb在n号考点.由于是举办全国性赛事

多校7 HDU5816 Hearthstone 状压DP+全排列

1 多校7 HDU5816 Hearthstone 状压DP+全排列 2 题意:boss的PH为p,n张A牌,m张B牌.抽取一张牌,能胜利的概率是多少? 3 如果抽到的是A牌,当剩余牌的数目不少于2张,再从剩余牌里抽两张,否则全部拿完. 4 每次拿到一张B牌,对boss伤害B[i]的值 5 思路:dp[i]表示状态为i时的方案数 6 先处理出所有状态下的方案,再枚举每种状态,如果符合ans+=dp[i]*剩余数的全排列 7 当前集合里有a张A,b张B,那么还能取的牌数:a*2-a-b+1 8 9

ICPC2018南京网络赛 AC Challenge(一维状压dp)

AC Challenge 30.04% 1000ms 128536K Dlsj is competing in a contest with n (0 < n \le 20)n(0<n≤20) problems. And he knows the answer of all of these problems. However, he can submit ii-th problem if and only if he has submitted (and passed, of course)

nefu1109 游戏争霸赛(状压dp)

题目链接:http://acm.nefu.edu.cn/JudgeOnline/problemShow.php?problem_id=1109 //我们校赛的一个题,状压dp,还在的人用1表示,被淘汰的人用0表示.倒着循环即可. //比赛的时候我用的是二维dp数组表示状态,一直是WA的,搞不懂原因...Orz... 代码: #include<iostream> #include<cstdio> #include<algorithm> #include<cstrin

【NOI2015】寿司晚会 题解(状压DP)

[问题描述] 为了庆祝 NOI 的成功开幕,主办方为大家准备了一场寿司晚宴.小 G 和小 W 作为参加 NOI 的选手,也被邀请参加了寿司晚宴. 在晚宴上,主办方为大家提供了 n?1 种不同的寿司,编号 1,2,3,?, n?1, 其中第 i 种寿司的美味度为 i+1  (即寿司的美味度为从 2 到 n ). 现在小 G 和小 W 希望每人选一些寿司种类来品尝,他们规定一种品尝方案 为不和谐的当且仅当:小 G 品尝的寿司种类中存在一种美味度为 x 的寿司,小 W 品尝的寿司中存在一种美味度为 y