首页 > 其他分享 >J - Just Arrange the Icons CodeForces - 1267J (思维+暴力)

J - Just Arrange the Icons CodeForces - 1267J (思维+暴力)

时间:2022-11-02 11:02:16浏览次数:58  
标签:return Just Icons int CodeForces st mp ans 屏幕

题意

n个软件,每个软件都有种类,而屏幕有容量 s (自己决定),
有两个限制:

  • 一个屏幕只能放 s-1 或者 s 个软件
  • 一个屏幕上只能防同种的软件

求最小的屏幕数。

思路

枚举 s

代码

#include<bits/stdc++.h>
using namespace std;
typedef pair<int,int> pii;
const int N=2e6+10;
int a[N];
map<int,int> mp;
set<int> st;
int n;
int check(int x){
    int ans=0;
    for(int it:st){
        if(mp[it]%x==0)
            ans+=mp[it]/x;
        else if(mp[it]/x+mp[it]%x>=x-1)//放满的每页少放一个 + 不足一页剩下的,如果能凑成1页就行
            ans+=mp[it]/x+1;
        else 
            return 0x3f3f3f3f;
    }
    return ans;
}
void solve(){
    mp.clear();
    st.clear();
    scanf("%d",&n);//n个app

    for(int i=0;i<n;i++){
        scanf("%d",&a[i]);
        mp[a[i]]++;
        st.insert(a[i]);
    }
    int minn=0x3f3f3f3f;
    for(int  it: st)
        minn=min(mp[it],minn);
    int ans=0x3f3f3f3f;

    for(int i=1;i<=minn+1;i++){
        ans=min(ans,check(i));
    }
    printf("%d\n",ans);

}
int main()
{
    int t;cin>>t;
    while(t--){
        solve();
    }
    return 0;
}

标签:return,Just,Icons,int,CodeForces,st,mp,ans,屏幕
From: https://www.cnblogs.com/kingwz/p/16850308.html

相关文章

  • 「题解」Codeforces 1322B Present
    看上去异或里面套了层加法不好拆位,但是依然可以对每个二进制位处理。现在考虑第\(k\)位,那么产生贡献的数字对一定满足以下条件之一:第\(k\)位相同且前\((k-1)\)位......
  • 「题解」Codeforces 930E Coins Exhibition
    看到题就先容斥。然后容斥系数太难算了就寄了,大概要分好几种情况讨论,于是就弃了。不容斥也能做。考虑限制将串划分成了若干段,然后一段一段dp.有没有什么好的方法描述这个......
  • Codeforces - 1391C - Cyclic Permutations(思维 + 组合数学 + 数论 + 图论、*1500)
    1391C-CyclicPermutations(⇔源地址)目录1391C-CyclicPermutations(⇔源地址)tag题意思路AC代码错误次数:0tag⇔思维、⇔组合数学、⇔数论、⇔......
  • Codeforces Round #611 (Div. 3) D
    D.ChristmasTrees显然对于一个中间的点要是不能向两边最近的扩展我们直接判定他没有用处了这样我们就有了bfs的做法我们先把原点放进去要是能扩展我们显然可以直接......
  • Codeforces Round #667 (Div. 3) ABCD
    https://codeforces.com/contest/1409A.YetAnotherTwoIntegersProblem题目大意:k∈[1;10]我们每次可以选择a:=a+kora:=a−k问a要经历多少次操作变成b?input......
  • Codeforces 1730 D
    Codeforces1730D题意定义一次“操作”为把字符串$a$的前$k$个字母与字符串$b$的后$k$个字母交换。问能不能经过有限次操作后,让$a=b$。注:$......
  • Educational Codeforces Round 81 (Rated for Div. 2) D
    D.SameGCDs对于题目所给的公式gcd(a,m)=gcd(a+x,m)由辗转相除我们把第二个式子变一下gcd((a+x)%m,m)x的取值范围为[0,m)(a+x)%m也是所以我们可以直接写成gcd(a,m)=g......
  • Codeforces 1670 E. Hemose on the Tree
    题意给你个数p,n=2^p;有一棵树有n个节点,告诉你怎么连边;每个点有个权值,每条边也有个权值,权值需要自行分配,[1,2,3..n...2n-1],总共2n-1个权值;你需要选一个节点,使得他到所......
  • Codeforces Round #113 (Div. 2) E. Tetrahedron(dp/递推)
    https://codeforces.com/problemset/problem/166/E题目大意:给定一个正三角锥,最上面的顶点是D点,下面三个点分别标号为ABC给定n次,我们初始化在D点上,并且要求最后第n步也......
  • Codeforces Round #650 (Div. 3) D
    D.TaskOnTheBoard观察样例我们发现一定会有0的存在然后呢?我们发现给出的题意中只是小的字符一定会加上与比它大的字符的距离数据范围是50我们知道了最大的字符......