HDU 5884 Sort -2016 ICPC 青岛赛区网络赛

题目链接

#include <iostream>
#include <math.h>
#include <stdio.h>
#include<algorithm>
#include<cstring>
#include<queue>
using namespace std;
int data[100005];
int main()
{
    int T,n,t;
    scanf("%d",&T);
    while(T--) {
        int tmp;
        scanf("%d%d",&n,&t);
        for(int i=0;i<n;i++) {
            scanf("%d",&data[i]);
        }
        sort(data,data+n);
        int l=2,r=n;
        while(l<r) {
            int mid=(l+r)/2;
            int i = 0;
            while (data[i]==0 && i<n) i++;
            long long ansT = 0, pos = 0;
            queue<int> que;
            i--;
            if(i==-1) i=0;
            int tmp = (n-i-1)%(mid-1);
            if (tmp) {
                tmp++;
                while (tmp--) pos += data[i++];
                que.push(pos);
                ansT += pos;
            }

            while (i<n||que.size() > 1) {
                pos = 0;
                for (int j = 0; j < mid; j++) {
                    if (i == n && que.empty()) break;
                    if (que.empty()) {
                        pos += data[i++];
                        continue;
                    }
                    else if (i == n) {
                        pos += que.front();
                        que.pop();
                        continue;
                    }
                    else if (data[i] < que.front()) {
                        pos += data[i++];
                    }
                    else {
                        pos += que.front();
                        que.pop();
                    }
                }
                ansT += pos;
                que.push(pos);
            }
            if(ansT<=t) r=mid;
            else l=mid+1;
        }
        printf("%d\n",l);
        //printf("%d\n",r);
    }
    return 0;
}
/*
100

3 3
1 2 4
1 2
2 3
3 1

*/
时间: 2024-10-13 07:24:32

HDU 5884 Sort -2016 ICPC 青岛赛区网络赛的相关文章

HDU 5879 Cure -2016 ICPC 青岛赛区网络赛

题目链接 题意:给定一个数n,求1到n中的每一项的平方分之一的累加和. 题解:题目没有给数据范围,而实际上n很大很大超过long long.因为题目只要求输出五位小数,我们发现当数大到一定程度时值是固定的 pi*pi/6.小的打表就行了,这里打表为了防止爆内存我用了优化的方法,类似于我之前写的light oj 1234. #include <iostream> #include <math.h> #include <stdio.h> #include <cstri

HDU 5881 Tea -2016 ICPC 青岛赛区网络赛

题目链接 题意:有一壶水, 体积在 L和 R之间, 有两个杯子, 你要把水倒到两个杯子里面, 使得杯子水体积几乎相同(体积的差值小于等于1), 并且使得壶里剩下水体积不大于1. 你无法测量壶里剩下水的体积, 问最小需要倒水的次数. 题解:考虑倒水的大致过程,L = 0 和 L = 1 的情况应该是等价的,所以不妨设 L > 0.首先向一个杯子倒 L/2 升水,再往另一个杯子倒  L/2+1 升水.接下来就来回往两个杯子里倒 2 升,直到倒空为止.这样就很容易分析出需要倒水的次数.唯一注意的是最后

HDU 5875 Function -2016 ICPC 大连赛区网络赛

题目链接 网络赛的水实在太深,这场居然没出线zzz,差了一点点,看到这道题的的时候就剩半个小时了.上面是官方的题意题解,打完了才知道暴力就可以过,暴力我们当时是想出来了的,如果稍稍再优化一下估计就过了zzz.去年有一场现场赛也是n=1000,n^3过了,看来关键时刻实在做不出来就得大胆暴力啊. #include <bits/stdc++.h> using namespace std; typedef long long ll; const int maxn=1e5+5; int a[maxn]

HDU 5878 I Count Two Three (打表+二分查找) -2016 ICPC 青岛赛区网络赛

题目链接 题意:给定一个数n,求大于n的第一个只包含2357四个因子的数(但是不能不包含其中任意一种),求这个数. 题解:打表+二分即可. #include <iostream> #include <math.h> #include <stdio.h> #include<algorithm> using namespace std; long long data[1000000],tot=0; int main() { long long maxn = 10

HDU 5894 hannnnah_j’s Biological Test (组合数学) -2016 ICPC沈阳赛区网络赛

题目链接 题意:一个大小为 nn 的环,选 mm 个位置涂黑,要求相邻两个黑点之间至少间隔 kk 个白点,问方案数. 题解:考虑从 0 开始的标号最小的涂黑的位置,有两种情况: 如果该位置 \geq k≥k,相当于在一排(不是环) n - kn−k 个椅子里面放 mm 个人:如果该位置 < k<k, 相当于在一排 n - 2k - 1n−2k−1 个椅子里面放 (m - 1)(m−1) 个人.这种情况有 k 种. 最后考虑在一排 nn 个椅子里面放 mm 个人的方案数,相当于要找 (m + 1

HDU 5901 Count primes (1e11内的素数个数) -2016 ICPC沈阳赛区网络赛

题目链接 题意:求[1,n]有多少个素数,1<=n<=10^11.时限为6000ms. 官方题解:一个模板题, 具体方法参考wiki或者Four Divisors. 题解:给出两种代码. 第一种方法Meisell-Lehmer算法只需265ms. 第二种方法不能运行但是能AC,只需35行. 第一种: //Meisell-Lehmer #include<cstdio> #include<cmath> using namespace std; #define LL long

hdu 4005 双联通 2011大连赛区网络赛E *****

题意: 有一幅图,现在要加一条边,加边之后要你删除一条边,使图不连通,费用为边的费用,要你求的是删除的边的最小值的最大值(每次都可以删除一条边,选最小的删除,这些最小中的最大就为答案) 首先要进行缩点,把图缩为一棵树,因此,加入一条边后图就会存在一个环,环中的任何一条边删除后都不会导致图不连通 之后找一条最小的边,可以说这条边肯定是在加边之后的连通块里的,因为如果不在连通块里,那就直接可以把这条最小的边删掉,而达不到求出答案的目的 找到边后,分别从边的两点开始遍历,要遍历出一条路径来,并且边上的

2014 ACM/ICPC 鞍山赛区网络赛(清华命题)

为迎接10月17号清华命题的鞍山现场赛 杭电上的题目 Biconnected(hdu4997)      Rotate(hdu4998)     Overt(hdu4999)   Clone(hdu5000)   Walk(hdu5001)   LianLianKan   Rescue   Spy's Work   Color the Tree   The Ghost Blows Light   USACO ORZ   2013/8/27

ICPC 2018 徐州赛区网络赛

ACM-ICPC 2018 徐州赛区网络赛 ?去年博客记录过这场比赛经历:该死的水题 ?一年过去了,不被水题卡了,但难题也没多做几道.水平微微有点长进. ? ? D. Easy Math 题意: ? 给定 \(n\), \(m\) ,求 \(\sum _{i=1}^{m} \mu(in)\) .其中 $ 1 \le n \le 1e12$ , $ 1 \le m \le 2e9$ ,\(\mu(n)\) 为莫比乌斯函数. ? 思路: ? 容易知道,\(i\) 与 \(n\) 不互质时, \(\m