vijos1153猫狗大战

新一年度的猫狗大战通过SC(星际争霸)这款经典的游戏来较量,野猫和飞狗这对冤家为此已经准备好久了,为了使战争更有难度和戏剧性,双方约定只能选择Terran(人族)并且只能造机枪兵。

比赛开始了,很快,野猫已经攒足几队机枪兵,试探性的发动进攻;然而,飞狗的机枪兵个数也已经不少了。野猫和飞狗的兵在飞狗的家门口相遇了,于是,便有一场腥风血雨和阵阵惨叫声。由于是在飞狗的家门口,飞狗的兵补给会很快,野猫看敌不过,决定撤退。这时飞狗的兵力也不足够多,所以没追出来。

由于不允许造医生,机枪兵没办法补血。受伤的兵只好忍了。555-
现在,野猫又攒足了足够的兵力,决定发起第二次进攻。为了使这次进攻给狗狗造成更大的打击,野猫决定把现有的兵分成两部分,从两路进攻。由于有些兵在第一次战斗中受伤了,为了使两部分的兵实力平均些,分的规则是这样的:1)两部分兵的个数最多只能差一个;2)每部分兵的血值总和必须要尽可能接近。现在请你编写一个程序,给定野猫现在有的兵的个数以及每个兵的血格值,求出野猫按上述规则分成两部分后每部分兵的血值总和。

格式

输入格式

第一行为一个整数n(1<=n<=200),表示野猫现在有的机枪兵的个数。以下的n行每行一个整数,表示每个机枪兵的血格(1<=ai<=40)。

输出格式

只有一行,包含两个数,即野猫的每部分兵的血值总和,较小的一个值放在前面,两个数用空格分隔。

样例1

样例输入1

3
35
20
32

Copy

样例输出1

35 52

Copy

限制

各个测试点1s

提示

TO 狗狗:这道题的数据范围我已经尽量按星际的游戏规则来了,如果你再固执于由于机枪兵的攻击力一定使不能达到某些血格值或者游戏中一定要造农民不能使机枪兵的人数达到200的话,我只能决定将那场猫狗大战的录像公开于世人了!!!

首先DP很好想,f[i][j]表示用i个数何为j的可能性,以为每个数只能用一次,所以就要用类似于01背包般的做法来做,从后往前枚举。

#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<vector>
using namespace std;
typedef long long ll;
typedef long double ld;
typedef pair<int,int> pr;
const double pi=acos(-1);
#define rep(i,a,n) for(int i=a;i<=n;i++)
#define per(i,n,a) for(int i=n;i>=a;i--)
#define Rep(i,u) for(int i=head[u];i;i=Next[i])
#define clr(a) memset(a,0,sizeof(a))
#define pb push_back
#define mp make_pair
#define fi first
#define sc second
#define pq priority_queue
#define pqb priority_queue <int, vector<int>, less<int> >
#define pqs priority_queue <int, vector<int>, greater<int> >
#define vec vector
ld eps=1e-9;
ll pp=1000000007;
ll mo(ll a,ll pp){if(a>=0 && a<pp)return a;a%=pp;if(a<0)a+=pp;return a;}
ll powmod(ll a,ll b,ll pp){ll ans=1;for(;b;b>>=1,a=mo(a*a,pp))if(b&1)ans=mo(ans*a,pp);return ans;}
void fre() { freopen("c://test//input.in", "r", stdin); freopen("c://test//output.out", "w", stdout); }
//void add(int x,int y,int z){ v[++e]=y; next[e]=head[x]; head[x]=e; cost[e]=z; }
int dx[5]={0,-1,1,0,0},dy[5]={0,0,0,-1,1};
ll read(){ ll ans=0; char last=‘ ‘,ch=getchar();
while(ch<‘0‘ || ch>‘9‘)last=ch,ch=getchar();
while(ch>=‘0‘ && ch<=‘9‘)ans=ans*10+ch-‘0‘,ch=getchar();
if(last==‘-‘)ans=-ans; return ans;
}
#define N 205
#define M 8005
int a[N],f[N][M];
int main()
{
    int n=read(),sum=0;
    for(int i=1;i<=n;i++)
    a[i]=read(),sum+=a[i];
    int n2=n>>1;
    f[0][0]=1;
    for(int i=1;i<=n;i++)
        for(int j=n2;j>=0;j--)
            for(int k=sum-a[i];k>=0;k--)
            {
                f[j+1][k+a[i]]|=f[j][k];
            }
    int ans=0;
    for(int i=sum;i>=0;i--)
    {
        if(f[n2][i])
        {
            ans=max(ans,min(i,sum-i));
        }
    }
    cout<<ans<<‘ ‘<<sum-ans<<endl;
    return 0;
}
时间: 2024-08-07 02:42:56

vijos1153猫狗大战的相关文章

书乐说:京东阿里猫狗大战 嘴炮只为物流天下谁更强?

在新近播出的央视<对话>栏目中,京东集团CEO刘强东评价了京东物流的竞争对手菜鸟网络,他称菜鸟网络本质还是要在几个快递公司之上,搭建数据系统,最后,几家快递公司的大部分利润,都会被菜鸟物流吸走.菜鸟网络新闻发言人则很快回应称,"一家没有平台共享思维的企业,眼界只能停留榨取合作伙伴利润养活自己上,不可能理解赋能伙伴.提升行业.繁荣生态的意义." 嘴炮大战,不是吵给消费者看 对于京东(吉祥物是狗)和菜鸟(天猫就是只猫)在物流上的"猫狗大战"互掐,笔者和每日经

&quot;猫狗大战2014&quot;,阿里京东预谋了一年的明争暗斗

最狠的竞争策略是什么?小内认为当属“走自己的路让别人无路可走”了.巨头之间的争斗 常常就是这样有你没我的姿态,招招都要致命.昨天晚上,阿里发布了一则通告,声明由于“双十一”已经是自己的注册商标,所以其他任何人未经许可都是侵权行 为.这等于在向友商们放话,“‘双十一’是我的,你们别想碰”. 更加值得玩味的是,通告里还讲到有些企业的宣传广告不但侵权还恶意诋毁淘宝.天猫品牌,是不正当竞争.其实阿里敲打的就是京东,相信那则“又瞎淘了吧”的广 告很多朋友都有看过,京东明显是为了瓜分“双十一”市场而搞了些小

P1489 猫狗大战

P1489 猫狗大战 题目描述 新一年度的猫狗大战通过SC(星际争霸)这款经典的游戏来较量,野猫和飞狗这对冤家为此已经准备好久了,为了使战争更有难度和戏剧性,双方约定只能选择Terran(人族)并且只能造机枪兵. 比赛开始了,很快,野猫已经攒足几队机枪兵,试探性的发动进攻:然而,飞狗的机枪兵个数也已经不少了.野猫和飞狗的兵在飞狗的家门口相遇了,于是,便有一场腥风血雨和阵阵惨叫声.由于是在飞狗的家门口,飞狗的兵补给会很快,野猫看敌不过,决定撤退.这时飞狗的兵力也不足够多,所以没追出来. 由于不允许

我是如何快速拿下datacastle图像识别竞赛“猫狗大战”冠军的 | 含全代码和详细说明

接触数据挖掘快有一年了,早期在学生团队做过一些D3数据可视化方面的工作,今年上半年开始数据挖掘实践.想把这个爱好发展成事业.有在kaggle混迹,算个数据新手,但一直不承认:你是新人,所以成绩不好看没啥关系. 小试牛刀 之前偶然的机会看到了datacastle大数据竞赛平台的"猫狗大战"竞赛,本着好奇和体验一下的心态就参加了.但是我本身对图像识别这一块并不是特别熟悉,所以在前期的上手过程中遇到了很多麻烦,甚至一度有放弃的想法.在很长一段时间内,我都没有去思考有关这个竞赛的问题. 过程艰

luogu P1489 猫狗大战

题目描述 新一年度的猫狗大战通过SC(星际争霸)这款经典的游戏来较量,野猫和飞狗这对冤家为此已经准备好久了,为了使战争更有难度和戏剧性,双方约定只能选择Terran(人族)并且只能造机枪兵. 比赛开始了,很快,野猫已经攒足几队机枪兵,试探性的发动进攻:然而,飞狗的机枪兵个数也已经不少了.野猫和飞狗的兵在飞狗的家门口相遇了,于是,便有一场腥风血雨和阵阵惨叫声.由于是在飞狗的家门口,飞狗的兵补给会很快,野猫看敌不过,决定撤退.这时飞狗的兵力也不足够多,所以没追出来. 由于不允许造医生,机枪兵没办法补

洛谷P1489 猫狗大战

题目描述 新一年度的猫狗大战通过SC(星际争霸)这款经典的游戏来较量,野猫和飞狗这对冤家为此已经准备好久了,为了使战争更有难度和戏剧性,双方约定只能选择Terran(人族)并且只能造机枪兵. 比赛开始了,很快,野猫已经攒足几队机枪兵,试探性的发动进攻:然而,飞狗的机枪兵个数也已经不少了.野猫和飞狗的兵在飞狗的家门口相遇了,于是,便有一场腥风血雨和阵阵惨叫声.由于是在飞狗的家门口,飞狗的兵补给会很快,野猫看敌不过,决定撤退.这时飞狗的兵力也不足够多,所以没追出来. 由于不允许造医生,机枪兵没办法补

py4CV例子1猫狗大战和Knn算法

1.什么是猫狗大战: 数据集来源于Kaggle(一个为开发商和数据科学家提供举办机器学习竞赛.托管数据库.编写和分享代码的平台),原数据集有12500只猫和12500只狗,分为训练.测试两个部分. 2.什么是Knn算法: K最近邻(k-Nearest Neighbor,KNN)基本思想:如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类别. 如果用比较平实的话来说,就是"我们已经存在了一个带标签的数据库,现在输入没有标签的新数据后,将新

猫狗大战

新一年度的猫狗大战通过SC(星际争霸)这款经典的游戏来较量,野猫和飞狗这对冤家为此已经准备好久了,为了使战争更有难度和戏剧性,双方约定只能选择Terran(人族)并且只能造机枪兵. 比赛开始了,很快,野猫已经攒足几队机枪兵,试探性的发动进攻:然而,飞狗的机枪兵个数也已经不少了.野猫和飞狗的兵在飞狗的家门口相遇了,于是,便有一场腥风血雨和阵阵惨叫声.由于是在飞狗的家门口,飞狗的兵补给会很快,野猫看敌不过,决定撤退.这时飞狗的兵力也不足够多,所以没追出来. 由于不允许造医生,机枪兵没办法补血.受伤的

图像识别猫狗大战——初学代码之读取数据

图像识别猫狗大战——初学代码之读取数据 1. 读取数据标签 item_label = item.split('.')[0] # 文件名形如 cat.0.jpg, 只需要取第一个.# 将item以字符'.'为分割方式截取子串,存入字符串向量,获取向量的第[0]个元素.# 如item='cat.0.jpg', 则item.split('.')[0]='cat'.# 如item='1.cat.0.jpg', 则item.split('.')[0]='1', item.split('.')[1]='ca