• CF 369 B. Valera and Contest


    http://codeforces.com/contest/369/problem/B

    题意 :n, k, l, r, sall, sk,n代表的是n个人,这n个人的总分是sall,每个人的得分大于 l 小于 r ,其中k个人的分数构成了非递增序列,他们的分数总共为sk,让你求出每个人的分数输出即可,只要输出满足要求的一种即可。

    思路 :这个题我是比赛完了才做的,据说很多人当时做的时候就因为错在没有特判0上,还有我做的时候越界了,因为没有考虑到如果k=n的话,n-k=0,这样的话sall%n就不对了。就是先看这k个人的,让sk取余k,得到的余数从第一个人开始加1,直到余数没了为止,因为这k个是非递增序列,所以要从前开始加,这样的话剩下的n-k也这样做就行,反正都是符合题意的。

    #include <iostream>
    #include <stdio.h>
    using namespace std ;
    int main()
    {
        int n,k,l,r,sall,sk ;
        while(cin>>n>>k>>l>>r>>sall>>sk)
        {
            int i ;
            if(n == 0)
                continue ;
            if(k == n)
            {
                for(i = 1 ; i <= sk%k ; i++)
                    cout<<sk/k+1<<" " ;
                for( ; i <= k ; i++)
                    cout<<sk/k <<" ";
            }
            else
            {
                for(i = 1 ; i <= sk%k ; i++)
                    cout<<sk/k+1<<" " ;
                for( ; i <= k ; i++)
                    cout<<sk/k <<" ";
                n = n-k ;
                sall -= sk ;
                for(i = 1 ; i <= sall%n ; i++)
                    cout<<sall/n+1<<" ";
                for( ; i < n ; i++)
                    cout<<sall/n<<" " ;
                cout<<sall/n<<endl ;
            }
        }
        return 0 ;
    }
    View Code
  • 相关阅读:
    Linux调度器性能分析
    [ZJOI2009]假期的宿舍
    CH1601 【模板】前缀统计 (trie树)
    P2580 于是他错误的点名开始了
    P1608 路径统计
    P4779 【模板】单源最短路径
    [JLOI2014]松鼠的新家
    [NOI2015]软件包管理器
    [HAOI2015]树上操作
    P3386 【模板】二分图匹配
  • 原文地址:https://www.cnblogs.com/luyingfeng/p/3451625.html
Copyright © 2020-2023  润新知