zoukankan      html  css  js  c++  java
  • 牛客网国庆集训派对Day3题目 2018年

    链接:https://www.nowcoder.com/acm/contest/203/D
    来源:牛客网

    Shopping
    时间限制:C/C++ 1秒,其他语言2秒
    空间限制:C/C++ 524288K,其他语言1048576K
    64bit IO Format: %lld

    题目描述

    你要买n件物品,其中有一些是凳子。
    商场正在举行促销活动,如果购物车中有至少一个凳子,那么你可以半价购买这个购物车中最贵的一个物品。
    你有m辆购物车,请最小化你的花费。

    输入描述:

    第一行一个整数t表示数据组数 (1 ≤ t ≤ 100)。
    每组数据第一行两个整数n,m (1 ≤ n,m ≤ 1000),接下来n行每行两个整数a
    i
    ,b
    i
    ,分别表示第i件物品的价格以及它是否是凳子 (1 ≤ a
    i
     ≤ 10
    5
    , 0 ≤ b
    i
     ≤ 1)。

    输出描述:

    每组数据输出一行一个实数表示最小花费,保留一位小数。
    示例1

    输入

    复制
    2
    5 1
    1 0
    2 1
    3 1
    4 0
    5 0
    5 10
    1 0
    2 1
    3 1
    4 0
    5 0

    输出

    复制
    12.5
    10.5
     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 double a[1100],b[1100];
     4 int main()
     5 {
     6     int t;
     7     scanf("%d",&t);
     8     while(t--)
     9     {
    10         int n,m;
    11         scanf("%d%d",&n,&m);
    12         for(int i=0;i<n;i++)
    13         {
    14             scanf("%lf%lf",&a[i],&b[i]);
    15         }
    16         sort(a,a+n);
    17         int sum=0;
    18         for(int i=0;i<n;i++)
    19         {
    20             if(b[i]==1)
    21             {
    22                 sum++;
    23             }
    24         }
    25         if(sum<=m)
    26         {
    27             for(int i=n-1;i>=n-sum;i--)
    28             {
    29                 a[i]/=2;
    30             }
    31         }
    32         else
    33         {
    34             for(int i=n-1;i>=n-m;i--)
    35             {
    36                 a[i]/=2;
    37             }
    38         }
    39         double ans=0;
    40          for(int i=0;i<n;i++)
    41          {
    42             // cout<<a[i]<<" ";
    43              ans+=a[i];
    44          }
    45          printf("%.1f
    ",ans);
    46     }
    47     return 0;
    48 }

    链接:https://www.nowcoder.com/acm/contest/203/H
    来源:牛客网

    Travel
    时间限制:C/C++ 1秒,其他语言2秒
    空间限制:C/C++ 524288K,其他语言1048576K
    64bit IO Format: %lld

    题目描述

    魔方国有n座城市,编号为。城市之间通过n-1条无向道路连接,形成一个树形结构。
    澜澜打算在魔方国进行m次旅游,每次游览至少一座城市。为了方便,每次旅游游览的城市必须是连通的。此外,澜澜希望游览所有城市恰好一次。
    澜澜想知道有多少种旅游方案满足条件,两个方案不同当且仅当存在某一次旅游游览了不同的城市。
    澜澜不会数数,所以只好让你来帮他数方案。

    输入描述:

    第一行一个整数t表示数据组数 (1 ≤ t ≤ 100)。
    每组数据第一行两个整数n,m
    ,接下来n-1行每行两个整数a
    i
    ,b
    i
    表示一条道路 (1≤ a
    i
    ,b
    i
    ≤ n)。

    输出描述:

    每组数据输出一行一个整数表示方案数对10
    9
    +7取模的结果。
    示例1

    输入

    复制
    2
    3 1
    1 2
    1 3
    3 2
    1 2
    1 3

    输出

    复制
    1
    4
    思路:组合数C(n-1,m-1)*m!

    代码:
     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 const int maxn = 1 << 20;
     5 const int mod = 1000000007;
     6 int t, n, m, ta, tb;
     7 ll c[maxn];
     8 ll qq(ll a, ll b, ll c)
     9 {
    10     ll ans = 1;
    11     a = a % c;
    12     while (b>0)
    13     {
    14         if (b % 2 == 1)
    15             ans = (ans * a) % c;
    16         b = b / 2;
    17         a = (a * a) % c;
    18     }
    19     return ans;
    20 }
    21 
    22 ll C(ll n, ll m)
    23 {
    24     return c[n] * qq(c[m] * c[n - m] % mod, mod - 2, mod) % mod;
    25 }
    26 int main(void)
    27 {
    28     scanf("%d", &t);
    29      c[1] = 1;
    30     for (int i = 2; i <= maxn; i++)
    31     {
    32         c[i] = c[i - 1] * i%mod;
    33     }
    34     while (t--)
    35     {
    36         scanf("%d%d", &n, &m);
    37         for (int i = 0; i < n - 1; i++)
    38             scanf("%d%d",&ta,&tb);
    39         if (m == 1)
    40         {
    41             printf("1
    ");
    42             continue;
    43         }
    44         ll ans = C(n - 1, m - 1);
    45         ans = (ans*c[m]) % mod;
    46         cout << ans << endl;
    47     }
    48     return 0;
    49 }


  • 相关阅读:
    判断一下是星期几
    猴子分桃
    免子生免子
    字符串排序
    非关系型数据库(一)
    学习redis简介(一)
    SAVEPOINT
    *****POSTGRESQL文檔
    程序员人生之路(分析的非常透彻!)
    UpperCase for ALL Text Editors
  • 原文地址:https://www.cnblogs.com/weixq351/p/9739953.html
Copyright © 2011-2022 走看看