zoukankan      html  css  js  c++  java
  • luogu P1489 猫狗大战

    题目描述

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

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

    由于不允许造医生,机枪兵没办法补血。受伤的兵只好忍了。555-

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

    输入输出格式

    输入格式:

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

    输出格式:

    一行,为两个整数,表示分成两部分后每部分兵的血值总和

    输入输出样例

    输入样例#1: 复制
    3
    35
    20
    32
    
    输出样例#1: 复制
    35 52

    说明

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

    dp[i][j]标识选取i个数能否构成血量为j

    转移类似背包

    #include<cstdio>
    #include<algorithm>
    using namespace std;
    const int maxn = 207;
    int n,thi[maxn];
    inline int read() {
        int x=0,    f=1;
        char c=getchar() ;
        while(c<'0'||c>'9'){ if(c=='-')f=-1;c=getchar();};
        while(c<='9'&&c>='0')x=x*10+c-'0',c=getchar();
        return x*f;
    }
    int f[maxn][maxn*40];
    int main() {
        n=read();int tot=0;
        for(int i=1;i<=n;++i) thi[i]=read(),tot+=thi[i];
        //f[0][0][0]=1;
        f[0][0]=1;
    /*    for(int i=1;i<=n;++i) {
            f[1][thi[i]]=1;
        }*/
        for(int i=1;i<=n;++i) 
            for(int j=i;j>=1;j--)
                for(int k=tot;k>=thi[i];k--) {
                    f[j][k]|=f[j-1][k-thi[i]];
                }
        int t=n>>1;
        int ans=0;
        for(int i=tot/2;i>=0;i--) {
            if(f[t][i]){ans=i;break;}
        }
        printf("%d %d
    ",ans,tot-ans);
        return 0;
    }
  • 相关阅读:
    Struts2的HelloWorld
    javaScript 避免使用eval
    javaScript 全局变量注意
    NET下的XML序列化 5
    通过aps.net创建web services 3
    XML web Service标准2
    webServices简介笔记1
    批量更新
    物理数据模型(PDM)->概念数据模型 (CDM)->面向对象模型 (OOM):适用于已经设计好数据库表结构了。
    json时间格式的互换
  • 原文地址:https://www.cnblogs.com/sssy/p/7988491.html
Copyright © 2011-2022 走看看