首页 > 其他分享 >B. A Balanced Problemset

B. A Balanced Problemset

时间:2024-01-28 17:34:41浏览次数:33  
标签:10 frac Problemset min int cin 因子 Balanced

原题链接

忠告1:要学会计算时间复杂度!!

忠告2:要学会抓事实,不要掉进题目直观模拟的陷阱里

事实

1.任意k个数的 \(gcd\) 一定可以是这k个数的最小值,这里以 \(k=3\) 举例
假设 \(gcd(a_1,a_2,a_3)=m\) ,则 \(a_1=k_1m,a_2=k_2m,a_3=k_3m\),其中 \(k_1,k_2,k_3\) 都是整数
那么可以通过移项变成 \(a_1=(k_1+k_3-1)m,a_2=k_2m,a_3=m\)
2.将n分成k个数的和,这k个数中的最小值 \(a_{min} \le \frac{n}{k}\) 对任何n,k都成立
很显然啊,拿 \(k=2\) 的情况举个例子就很明显了,\(k\) 推广开来也是一样的
3.根据事实12,当 \(a_{min}\) 是 \(n\) 的因子时,答案就是 \(a_{min}\)
于是我们可以 \(put\ it\ into\ simple\ words:\) ,找出 \(n\) 的小于 \(\frac{n}{k}\) 的 最大因子

判断时间复杂度

最坏情况: \(t=10^3,n=10^8,k=1\) , $10^{11} > 10^8 $
直接从 \(\frac{n}{k}\) 开始往下遍历很大概率T
我们考虑优化
由于答案一定是 \(n\) 的因子,而因子成对出现(包括1和自身),所以我们开根号找因子,每找一个因子相当于找到两个因子,对每个因子进行判断是否小于 \(\frac{n}{k}\)
此时 最坏情况 \(10^7\)

\(Code\)

#include<bits/stdc++.h>
using namespace std;
int main() {
    ios::sync_with_stdio(false); 
    cin.tie(NULL);
    int t;
    cin >> t;
    while(t--) {
        int n, k;
        cin >> n >> k;
        int result = 1; 
        for(int i = 1; i <= sqrt(n); i++) {
            if(n % i == 0) {
                if(i <= n / k) result = max(result, i);
                if(n / i <= n / k) result = max(result, n / i);
            }
        }
        cout << result << endl;
    }
    return 0;
}

标签:10,frac,Problemset,min,int,cin,因子,Balanced
From: https://www.cnblogs.com/pure4knowledge/p/17993056

相关文章

  • CodeForces 1924D Balanced Subsequences
    洛谷传送门CF传送门发现去掉匹配的\(2k\)个括号后,剩下的串一定形如\())\ldots)((\ldots(\),其中右括号数量为\(a=m-k\),左括号数量为\(b=n-k\)。考虑把剩下的串像\())\ldots)\mid((\ldots(\)一样分成两半。枚举左半边加入了\(\frac{i}{2}\)对匹配,则......
  • Check for balanced parentheses using stack【1月20日学习笔记】
    点击查看代码//Checkforbalancedparenthesesusingstack#include<iostream>#include<stack>//stackfromstandardtemplatelibrary(STL)#include<string>usingnamespacestd;boolarepair(charopening,charclosing){ if(opening=='(&#......
  • CodeForces 1237H Balanced Reversals
    洛谷传送门CF传送门容易想到把\(s,t\)分成长度为\(2\)的段考虑。容易发现\(00,11\)的个数在操作过程中不会改变,所以若两串的\(00\)或\(11\)个数不相等则无解。考虑依次对\(i=2,4,\ldots,n\)构造\(s[1:i]=t[n-i+1:n]\)。对于\(s_{j-1}s_j=y......
  • 『做题记录』[AGC032B] Balanced Neighbors
    [AGC032B]BalancedNeighborslink:https://atcoder.jp/contests/agc032/tasks/agc032_bDescription  给定整数\(N\),构造一个从\(1\)到\(N\)编号的\(N\)个节点的无向图,使得:该图不含有重边和自环,并且是连通的。每个节点的所有邻接节点的编号之和相同。  \(N\l......
  • Paper Reading: Oversampling with Reliably Expanding Minority Class Regions for I
    目录研究动机研究背景研究目的文章贡献本文方法可靠的扩展少数类区域的过采样方法描述方法分析多分类的OREM-MOREM和Boosting的结合计算复杂度实验结果二分类数据集实验实验设置对比实验消融实验调参实验多分类数据集实验对比实验消融实验OREMBoost实验实验设置对比实验优点......
  • The 2023 ICPC Asia Hefei Regional Contest Test D. Balanced Array
    Preface这题赛场上出了个关键点基本都想到的做法,但因为一个地方卡住了没过去导致不得不选择弃掉这道题赛后补了下发现\(O(n\logn)\)的做法是只差临门一脚了,但\(O(n)\)的做法还是trick性挺强的Solution首先考虑枚举\(k\),不难发现此时合法的前缀一定是个连续的区间,其中区间的......
  • 【刷题笔记】110. Balanced Binary Tree
    题目Givenabinarytree,determineifitisheight-balanced.Forthisproblem,aheight-balancedbinarytreeisdefinedas:abinarytreeinwhichthedepthofthetwosubtreesofeverynodeneverdifferbymorethan1.Example1:Giventhefollowingtree......
  • Maximum Balanced Circle
    here首先根据题意,我们不难有数字是连续的这种感悟。而且限制是值域上的,从下标入手发现难以突破,便从值域上入手。从小到大考虑每个数字,然后dp,可以参考这篇题解。至于方案的输出,有两种情况。只有自己\(i\)和\(i-1\),直接输出即可。有自己和\(i-1\)的环,定义print输出环,且最大......
  • SpringCloud复习:(2)@LoadBalanced注解的工作原理
    @LoadBalanced注解标记了一个RestTemplate或WebClientbean使用LoadBalancerClient来进行负载均衡。LoadBalancerAutoConfiguration类给带注解的@RestTemplate添加了拦截器:LoadBalancerInterceptor.具体流程如下:首先定义一个LoadBalancerInterceptor然后定义了一个RestTemplateC......
  • Paper Reading: Sample and feature selecting based ensemble learning for imbalanc
    目录研究动机文章贡献本文方法基于聚类的分层随机欠采样特征选择样本和特征选择的集成学习基于随机森林的SFSHEL实验结果数据集和实验设置KEEL数据集的比较HeartFailure数据集的比较优点和创新点PaperReading是从个人角度进行的一些总结分享,受到个人关注点的侧重和实力所限......