zoukankan      html  css  js  c++  java
  • UVa 1450 Ariport

    方法:二分

    二分答案,检查的时候,记录下当前round之前能飞走的飞机数。如果一个方向为空,另一个方向有飞机,那就让另一个方向飞走一架飞机。如果两边边飞机数超过二分的限制的部分超过可以飞走的飞机数,那就返回false。注意,设置不需要更新当前飞机的数量。

    code:

      1 #include <cstdio>
      2 #include <cstring>
      3 #include <algorithm>
      4 #include <iostream>
      5 #include <string>
      6 #include <vector>
      7 #include <stack>
      8 #include <bitset>
      9 #include <cstdlib>
     10 #include <cmath>
     11 #include <set>
     12 #include <list>
     13 #include <deque>
     14 #include <map>
     15 #include <queue>
     16 #include <fstream>
     17 #include <cassert>
     18 #include <unordered_map>
     19 #include <unordered_set>
     20 #include <cmath>
     21 #include <sstream>
     22 #include <time.h>
     23 #include <complex>
     24 #include <iomanip>
     25 #define Max(a,b) ((a)>(b)?(a):(b))
     26 #define Min(a,b) ((a)<(b)?(a):(b))
     27 #define FOR(a,b,c) for (ll (a)=(b);(a)<(c);++(a))
     28 #define FORN(a,b,c) for (ll (a)=(b);(a)<=(c);++(a))
     29 #define DFOR(a,b,c) for (ll (a)=(b);(a)>=(c);--(a))
     30 #define FORSQ(a,b,c) for (ll (a)=(b);(a)*(a)<=(c);++(a))
     31 #define FORC(a,b,c) for (char (a)=(b);(a)<=(c);++(a))
     32 #define FOREACH(a,b) for (auto &(a) : (b))
     33 #define rep(i,n) FOR(i,0,n)
     34 #define repn(i,n) FORN(i,1,n)
     35 #define drep(i,n) DFOR(i,n-1,0)
     36 #define drepn(i,n) DFOR(i,n,1)
     37 #define MAX(a,b) a = Max(a,b)
     38 #define MIN(a,b) a = Min(a,b)
     39 #define SQR(x) ((LL)(x) * (x))
     40 #define Reset(a,b) memset(a,b,sizeof(a))
     41 #define fi first
     42 #define se second
     43 #define mp make_pair
     44 #define pb push_back
     45 #define all(v) v.begin(),v.end()
     46 #define ALLA(arr,sz) arr,arr+sz
     47 #define SIZE(v) (int)v.size()
     48 #define SORT(v) sort(all(v))
     49 #define REVERSE(v) reverse(ALL(v))
     50 #define SORTA(arr,sz) sort(ALLA(arr,sz))
     51 #define REVERSEA(arr,sz) reverse(ALLA(arr,sz))
     52 #define PERMUTE next_permutation
     53 #define TC(t) while(t--)
     54 #define forever for(;;)
     55 #define PINF 1000000000000
     56 #define newline '
    '
     57 
     58 #define test if(1)if(0)cerr
     59 using namespace std;
     60 using namespace std;
     61 typedef vector<int> vi;
     62 typedef vector<vi> vvi;
     63 typedef pair<int,int> ii;
     64 typedef pair<double,double> dd;
     65 typedef pair<char,char> cc;
     66 typedef vector<ii> vii;
     67 typedef long long ll;
     68 typedef unsigned long long ull;
     69 typedef pair<ll, ll> l4;
     70 const double pi = acos(-1.0);
     71 
     72 const int maxn = 5e3+5;
     73 int a[2][maxn];
     74 int n;
     75 bool valid(int mid)
     76 {
     77     int r[2]={0,0}, moves = 0;
     78     repn(i, n)
     79     {
     80         rep(j, 2) r[j] += a[j][i];
     81         int cut = 0;
     82         rep(j, 2) if (r[j] > mid+1)
     83         {
     84             cut += r[j]-mid-1;
     85         }
     86         if (cut > moves) return false;
     87         if (!r[0] && r[1]) r[1] -= 1;
     88         else if (r[0] && !r[1]) r[0] -= 1;
     89         else if (r[0] && r[1] && r[0] + r[1] > moves)
     90             ++moves;
     91     }
     92     return true;
     93 }
     94 int main()
     95 {
     96     ios::sync_with_stdio(false);
     97     cin.tie(0);
     98     int T;  cin >> T;
     99     repn(kase, T)
    100     {
    101         cin >> n;
    102         repn(i, n) rep(j, 2) cin >> a[j][i];
    103         int left = 0, right = 1e5+5, mid, ans=0;
    104         while (left <= right)
    105         {
    106             mid = (left+right)>>1;
    107             if (valid(mid))
    108             {
    109                 ans = mid;
    110                 right = mid-1;
    111             }
    112             else
    113                 left = mid+1;
    114         }
    115         cout << ans << newline;
    116     }
    117 }
    118 /*
    119  3
    120  1 
    121  1 1
    122  3
    123  3 2
    124  0 3
    125  2 0
    126  6 
    127  0 1
    128  1 1
    129  1 2
    130  1 1
    131  1 1
    132  6 0
    133 */
    View Code
  • 相关阅读:
    delphi7在windows server 2003企业版上不能打开项目的选项(Options)窗口的解决方法
    简单的两个字“谢谢”,会让我坚持我的写作,我也要谢谢你们
    F41GUT 安装Windows server 2003系统后无法安装显卡驱动的解决办法
    远程桌面无法登录windows server 2003服务器
    F41GUT 安装Windows server 2003系统后无法安装显卡驱动的解决办法
    MS SQL Server 2000版在windows server 2003企业版系统上运行时造成数据库suspect的解决方法
    delphi7在windows server 2003企业版上不能打开项目的选项(Options)窗口的解决方法
    远程桌面无法登录windows server 2003服务器
    MS SQL Server 2000版在windows server 2003企业版系统上运行时造成数据库suspect的解决方法
    关于ajax 和josn
  • 原文地址:https://www.cnblogs.com/skyette/p/6363889.html
Copyright © 2011-2022 走看看