码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • CF1899B 250 Thousand Tons of TNT


    题目链接

    题目

    在这里插入图片描述在这里插入图片描述

    题目大意

    T T T 组测试数据
    每组 n n n 个货物,第 i i i 个货物 的重量是 a i a_i ai​
    用k辆货车按顺序装这些货物,条件是每辆车上的货物个数都一样,也即是说 n n n 必须能被 k k k 整除,
    求任意两辆车货物总重量的最大的差值。

    思路

    这题直接是暴力枚举,细节见代码

    代码

    #include
    #define int long long
    using namespace std;
    const int N = 1e6 + 10;
    int a[N], sum[N], back[N];
    bool isPrime(int n) {
    	if (n == 1) return false;
        if (n == 2 || n == 3 || n == 5 || n == 7) return true;
    	    //只需判断一个数能否被小于sqrt(n)的奇数整除
        
        for (int i = 2; i <= sqrt(n); i ++) {
            if(n % i == 0) {
                return false;
            }
        }
        return true;
    }
    signed main()
    {
    	int T; cin >> T;
    	while (T -- )
    	{
    		
    		int n;
    		scanf("%lld", &n);
    		for (int i = 0; i <= n; i ++ ) sum[i] = 0;
    		
    		
    		for (int i = 1; i <= n; i ++ )
    		{
    			scanf("%lld", &a[i]);
    			back[i] = a[i];
    			sum[i] = sum[i - 1] + a[i];
    		}
    		
    //		只有一个数时输出0 
    		if (n == 1)
    		{
    			cout << 0 << endl;
    			continue;
    		}
    //		for (int i = 1; i <= n; i ++ )
    //		{
    //			cout << sum[i] << " ";
    //		}
    //		cout << endl;
    		
    		sort(back + 1, back + 1 + n);
    		
    //		如果每个数都一样,直接输出0 
    		int ma = back[n] - back[1];
    		if (ma == 0)
    		{
    			printf("%lld\n", ma);
    			continue;
    		}
    		
    //		开始枚举每一个 
    		for (int  i = 2; i <= n / 2; i ++ )
    		{
    			
    			if (n % i == 0)
    			{
    				int m1 = 0, m2 = 99999999999999999;
    				int l = 0, r = i; //双指针进行枚举
    				
    //				一共装n/i辆货车 
    				for (int j = 1; j <= n / i; j ++ )
    				{
    //					算出这辆货车的货物重量 
    					int x = sum[r] - sum[l];
    					
    //					求最大的重量和最小的重量 
    					m1 = max(x, m1);
    					m2 = min(x, m2); 
    					
    //					找下一辆车 
    					l += i;
    					r += i;
    				}
    //				找最大的差值 
    				ma = max(ma, abs(m1 - m2));
    				
    //				算一遍i辆货车时的情况 
    				m1 = 0, m2 = 99999999999999999;
    				l = 0, r = n / i;
    				for (int j = 1; j <= i; j ++ )
    				{
    					int x = sum[r] - sum[l];
    					m1 = max(x, m1);
    					m2 = min(x, m2);
    					l += (n / i);
    					r += (n / i);
    				}
    				ma = max(ma, abs(m1 - m2));
    			}
    		}
    		printf("%lld\n", ma);
    	}
    	return 0;
     } 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61
    • 62
    • 63
    • 64
    • 65
    • 66
    • 67
    • 68
    • 69
    • 70
    • 71
    • 72
    • 73
    • 74
    • 75
    • 76
    • 77
    • 78
    • 79
    • 80
    • 81
    • 82
    • 83
    • 84
    • 85
    • 86
    • 87
    • 88
    • 89
    • 90
    • 91
    • 92
    • 93
    • 94
    • 95
    • 96
    • 97
    • 98
    • 99
    • 100
    • 101
  • 相关阅读:
    具有Postman + Swagger + Mock + JMeter所有功能的工具
    NodeMCU ESP8266 外设的 Arduino API 接口介绍
    ECMAScript6
    Python字典制作“编码本”“密码本”,“试炼”加、解密文本操作
    LeetCode算法题---第2天
    新手入驻eBay需要哪些条件?eBay防关联同样很重要
    java毕业设计——基于java+jsp+Tomcat的电子书下载系统设计与实现(毕业论文+程序源码)——电子书下载系统
    javaee之黑马乐优商城6
    word制作多个单位联合发文的文件头
    02、RocketMQ -- 应用场景、核心概念
  • 原文地址:https://blog.csdn.net/qq_34682765/article/details/134474022
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号