有点迷糊的题

简介: 2541. 使数组中所有元素相等的最小操作数 II - 力扣(LeetCode)

2541. 使数组中所有元素相等的最小操作数 II - 力扣(LeetCode)

1.png

题目中的含义是在一个数组里面进行+k -k

但是代码里面有 ans+=abs(nums1[i]-nums2[i])/k;

说明是相当于在两个数组里面分别操作(因为前提是可以操作成功)

然后再把结果/2  就相当于在一个数组里面操作了

class Solution {
public:
    long long minOperations(vector<int>& nums1, vector<int>& nums2, int k) {
        long long num1=0,num2=0,ans=0;
        for(long long i=0;i<nums1.size();i++)
        {
            num1+=nums1[i];
            num2+=nums2[i];
        }
        if(num1!=num2)
        return -1;
        for(long long i=0;i<nums1.size();i++)
        {
            if(nums1[i]==nums2[i])
            continue;
            if(k==0||(nums1[i]-nums2[i])%k!=0)
            return -1;
            ans+=abs(nums1[i]-nums2[i])/k;
        }
        return ans/2;
    }
};

P3370 【模板】字符串哈希 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

这个题不会写(以后说不定就会了)

1.1.png

1020-倒水_牛客竞赛语法入门班数组模拟、枚举、贪心习题 (nowcoder.com)

1.2.png

#include<iostream>
using namespace std;
const int N=1e4+10;
double a[N],b[N];
int main()
{
    int n;
    cin>>n;
    double t,c;
    cin>>t>>c;
    double T=t*c,p=c;
    double mx=0,mi=1e4+10;
    for(int i=1;i<=n;i++)
    {
        cin>>a[i]>>b[i];
        T+=a[i]*b[i];
        c+=b[i];
        mx=max(a[i],mx);
        mi=min(a[i],mi);
    }
    double res=T/c;
    if(res<=mi)
    {
        puts("Possible");
        printf("%.4lf",mi);
    }
    else if(res>=mx)
    {
        puts("Possible");
        printf("%.4lf",res);
    }
    else puts("Impossible");
}


相关文章
|
6月前
|
算法
重要的话说三遍 (2016)
重要的话说三遍 (2016)
40 0
|
开发者
试着做点儿有趣的事情
一个游戏怎样才算是做完了?这是个因人而异的问题。有些游戏还没有做出来就做完了,因为开发者不想再做了。有的游戏看上去做完了,但是后续还在不停的更新,那我们就说这个游戏其实还没有做完。至于如何算是做完了,我觉得这应该交由该游戏的制作者来决定。
89 0
|
JavaScript 前端开发
不看后悔系列!原来代码还可以这么写!
不看后悔系列!原来代码还可以这么写!
|
数据库
【硬着头皮】 比较两个数大小,麻烦写得整洁点
【硬着头皮】 比较两个数大小,麻烦写得整洁点
117 0
【硬着头皮】 比较两个数大小,麻烦写得整洁点
|
前端开发
高手是如何写出让别人看不懂的选择器
高手是如何写出让别人看不懂的选择器
91 0
高手是如何写出让别人看不懂的选择器
|
存储 编译器
懂了嘎嘎乱杀,但我赌你会懵——指针进阶终极版
正片开始👀 细化指针这一部分内容,现在着重把一些指针的运用情景搬出来康康,如果对指针盘的非常熟练了,或者指针还出于入门阶段的铁子请绕道(晕头警告) 直接给大家盘个套餐: 一维数组👏
懂了嘎嘎乱杀,但我赌你会懵——指针进阶终极版
|
JavaScript Java 编译器
方法调用:一看就懂,一问就懵?
方法调用:一看就懂,一问就懵?
95 0
方法调用:一看就懂,一问就懵?
|
程序员
我想到的几句话。
1、OO是好用的,问题是好多人用不好OO。(包括我在内) 2、三层是需要设计的,不是说把原来写在一处的代码,分开写在三处,就是三层了。 3、设计模式是需要灵活掌握的,外加丰富的项目经验和对业务逻辑的深刻理解。
598 0
|
安全 敏捷开发
【Orleans开胃菜系列1】不要被表象迷惑
code[class*="language-"],pre[class*="languag...
1170 0
|
算法 Java Python
代码为什么那么乱! 换种方法学面向对象
我们经常会为一个问题寻找多种不同的解决方案。当你评估不同的算法和数据结构时,通常会设计几种不同的方案,它们在性能和内存的使用上不尽相同。通过评估不同的方案,最终合理地优化应用程序,这是一种重要的面向对象设计技巧。
5510 0