• p1640&bzoj1854 连续攻击游戏(游戏)


    传送门(洛谷)

    传送门(bzoj)

    题目

    lxhgww最近迷上了一款游戏,在游戏里,他拥有很多的装备,每种装备都有2个属性,这些属性的值用[1,10000]之间的数表示。当他使用某种装备时,他只能使用该装备的某一个属性。并且每种装备最多只能使用一次。 游戏进行到最后,lxhgww遇到了终极boss,这个终极boss很奇怪,攻击他的装备所使用的属性值必须从1开始连续递增地攻击,才能对boss产生伤害。也就是说一开始的时候,lxhgww只能使用某个属性值为1的装备攻击boss,然后只能使用某个属性值为2的装备攻击boss,然后只能使用某个属性值为3的装备攻击boss……以此类推。 现在lxhgww想知道他最多能连续攻击boss多少次?

    Input

    输入的第一行是一个整数N,表示lxhgww拥有N种装备 接下来N行,是对这N种装备的描述,每行2个数字,表示第i种装备的2个属性值

    Output

    输出一行,包括1个数字,表示lxhgww最多能连续攻击的次数。

    Sample Input

    3
    1 2
    3 2
    4 5

    Sample Output

    2

    HINT

    对于30%的数据,保证N < =1000
    对于100%的数据,保证N < =1000000

    分析

    二分图匹配的题目,左面的点表示攻击值,右面的点表示装备,从1开始枚举左面的点,如果不能继续匹配则跳出循环,否则ans+1

    代码

    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<string>
    #include<algorithm>
    #include<cctype>
    #include<cmath>
    #include<cstdlib>
    #include<queue>
    #include<ctime>
    #include<vector>
    #include<set>
    #include<map>
    #include<stack>
    using namespace std;
    vector<int>v[10100];
    int wh[1000010],used[1000010],t,n,ans;
    bool work(int x){
          int i,j,k;
          for(i=0;i<v[x].size();i++)
             if(used[v[x][i]]!=t){
                 used[v[x][i]]=t;
                 if(!wh[v[x][i]]||work(wh[v[x][i]])){
                     wh[v[x][i]]=x;
                     return 1;
                 }
             }
          return 0;
    }
    void go(){
          int i,j,k;
          for(i=1;i<=10000;i++){
               t=i;
             if(!work(i))break;
             ans++;
          }
    }
    int main()
    {     int i,j,k,x,y;
          cin>>n;
          for(i=1;i<=n;i++){
              cin>>x>>y;
              v[x].push_back(i);
              v[y].push_back(i);
          }
          go();
          cout<<ans<<endl;
          return 0;
    }

  • 相关阅读:
    杭电ACM1.1.4
    杭电ACM1.2.1 Elevator
    杭电ACM1.2.3 QuickSum
    杭电ACM1.2.5 Balloon Comes!
    ProxySQL 读写分离实践
    MySQL 5.7 新特性之初始化
    MySQL高可用架构之MHA 原理与实践
    CentOS 7 快速初始化脚本 for MySQL
    基于Mysql 5.7 GTID 搭建双主Keepalived 高可用
    MySQL 5.7 新特性之增强半同步复制
  • 原文地址:https://www.cnblogs.com/yzxverygood/p/9046379.html
Copyright © 2020-2023  润新知