zoukankan      html  css  js  c++  java
  • Codeforces 854B Maxim Buys an Apartment:贪心

    题目链接:http://codeforces.com/contest/854/problem/B

    题意:

      有n栋房子从1到n排成一排,有k栋房子已经被售出。

      现在你要买一栋“好房子”。

      一栋房子是“好房子”的要求:(1)没被售出 (2)至少有一栋已售出的房子与他相邻(有邻居)

      问你可能的好房子总数量的最小值和最大值。

     

    题解:

      贪心。

     

      最小值:

        从第1栋房子开始紧挨着往右共k栋全都售出了,好房子只有一栋就是第k栋楼的右边一栋。

        特判:k == 0 || n == k:没有好房子,输出0。

     

      最大值:

        最完美情况为:每一栋已出售的房子紧挨的左右两边都没有出售,所以都是好房子。

        如果 左右两边的好房子 + 售出的房子 <= 总房子数,即k*2<=n-k:那么存在完美情况,答案为k*2(左右两边各一栋)。

        否则 除了售出的k栋房子之外,剩下的都是好房子。答案为n-k。

     

    AC Code:

     1 #include <iostream>
     2 #include <stdio.h>
     3 #include <string.h>
     4 
     5 using namespace std;
     6 
     7 int n,k;
     8 int maxn,minn;
     9 
    10 int main()
    11 {
    12     cin>>n>>k;
    13     if(k*2<=n-k) maxn=k*2;
    14     else maxn=n-k;
    15     if(n==k || k==0) minn=0;
    16     else minn=1;
    17     cout<<minn<<" "<<maxn<<endl;
    18 }
  • 相关阅读:
    rest_framework学习之路
    jQuery操作cookie
    Cookie和Session
    HTTP之Content-Type
    HTTP协议
    Python之random模块
    HTML5(FileRdeader)
    Python之re模块
    LINQ基础 之 LINQ TO SQL (二)
    LINQ基础(一)
  • 原文地址:https://www.cnblogs.com/Leohh/p/7492734.html
Copyright © 2011-2022 走看看