zoukankan      html  css  js  c++  java
  • 【HDOJ6651】Final Exam(贪心)

    题意:有n门课,价值之和为m,每门课的价值可能是0到m

    一门价值为x的课需要花至少x+1时间准备才能通过

    问不管价值如何分配都能通过至少k门课的最小总准备时间

    m,n,k<=1e9

    思路:

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 typedef long long ll;
     4 typedef unsigned int uint;
     5 typedef unsigned long long ull;
     6 typedef pair<int,int> PII;
     7 typedef pair<ll,ll> Pll;
     8 typedef vector<int> VI;
     9 typedef vector<PII> VII;
    10 #define N  1100000
    11 #define M  4100000
    12 #define fi first
    13 #define se second
    14 #define MP make_pair
    15 #define pi acos(-1)
    16 #define mem(a,b) memset(a,b,sizeof(a))
    17 #define rep(i,a,b) for(int i=(int)a;i<=(int)b;i++)
    18 #define per(i,a,b) for(int i=(int)a;i>=(int)b;i--)
    19 #define lowbit(x) x&(-x)
    20 #define Rand (rand()*(1<<16)+rand())
    21 #define id(x) ((x)<=B?(x):m-n/(x)+1)
    22 #define ls p<<1
    23 #define rs p<<1|1
    24 
    25 const ll MOD=1e9+7,inv2=(MOD+1)/2;
    26       double eps=1e-6;
    27       int INF=1e9;
    28 
    29 
    30 ll read()
    31 {
    32    ll v=0,f=1;
    33    char c=getchar();
    34    while(c<48||57<c) {if(c=='-') f=-1; c=getchar();}
    35    while(48<=c&&c<=57) v=(v<<3)+v+v+c-48,c=getchar();
    36    return v*f;
    37 }
    38 
    39 
    40 
    41 int main()
    42 {
    43     //freopen("1.in","r",stdin);
    44     int cas;
    45     scanf("%d",&cas);
    46     while(cas--)
    47     {
    48         ll n=read(),m=read()+1,k=read();
    49         ll t=n-k+1;
    50         if(m%t) printf("%I64d
    ",m+(k-1)*(m/t+1));
    51          else printf("%I64d
    ",m+(k-1)*(m/t));
    52     }
    53 
    54     return 0;
    55 }
  • 相关阅读:
    传统金融和互联网金融
    集团培训
    Javascript和JQuery之间的联系
    this和$(this)区别
    原生JavaScript支持6种方式获取元素
    绩效考核
    web服务端安全之分布式拒绝服务攻击
    web服务端安全之暴力破解
    web服务端安全之权限漏洞
    web服务端安全之文件上传漏洞
  • 原文地址:https://www.cnblogs.com/myx12345/p/11653998.html
Copyright © 2011-2022 走看看