首页 > 其他分享 >P8649 [蓝桥杯 2017 省 B] k 倍区间

P8649 [蓝桥杯 2017 省 B] k 倍区间

时间:2024-04-01 21:00:20浏览次数:28  
标签:前缀 P8649 int long 蓝桥 sc 余数 2017 remainderCount

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        
        // 读取输入的整数 n 和 k
        int n = sc.nextInt(); // 数组长度
        int k = sc.nextInt(); // 取模的值
        
        // 创建一个数组存储输入的整数
        int[] nums = new int[n];
        
        // 计算前缀和的总和
        long sum = 0;
        // 统计满足条件的个数
        long count = 0;
        
        // 创建一个数组来统计每个余数的出现次数
        long[] remainderCount = new long[k];
        
        // 初始状态下,余数为 0 的情况有 1 种,要先把 0 % k = 0 这种情况给算进去
        remainderCount[0] = 1;
        
        // 读取输入的整数,并计算前缀和的余数
        for (int i = 0; i < n; i++) {
            nums[i] = sc.nextInt();
            sum += nums[i]; // 计算前缀和
            int r = (int) (sum % k); // 计算当前前缀和对 k 取模的结果
            remainderCount[r]++; // 统计余数出现次数
        }
        
        // 遍历不同余数出现的次数
        for (int i = 0; i < k; i++) {
            // 相同余数中任取两个,他们所对应的区间是满足条件的
            count += remainderCount[i] * (remainderCount[i] - 1) / 2;
        }
        
        // 输出结果
        System.out.println(count);
    }
}

标签:前缀,P8649,int,long,蓝桥,sc,余数,2017,remainderCount
From: https://blog.csdn.net/Zachary45/article/details/137197873

相关文章

  • 蓝桥备赛——贪心(2)
    题干 我的代码dic={'*':1,'o':0}s1=input()s2=input()s1=list(s1)s2=list(s2)num1=''num2=''foriins1:#print(i)num1=num1+str(dic[i])forjins2:num2+=str(dic[j])#print(num1)#print(num2)num1=l......
  • NASA数据集——2014 年、2015 年和 2017 年北美地区土壤地球物理属性值(源层厚度 (ALT)
    ABoVE:AirSWOTColor-InfraredImageryOverAlaskaandCanada,2017简介文件修订日期:2019-04-25数据集版本:1摘要本数据集提供了根据2014年、2015年和2017年8月和10月在阿拉斯加北部12个研究地点(除个别地点外)采集的机载次冠层和次表层微波观测站(AirMOSS)P......
  • [蓝桥杯 2019 省赛 AB] 完全二叉树的权值
    #[蓝桥杯2019省AB]完全二叉树的权值##题目描述给定一棵包含$N$个节点的完全二叉树,树上每个节点都有一个权值,按从上到下、从左到右的顺序依次是$A_1,A_2,\cdotsA_N$,如下图所示:现在小明要把相同深度的节点的权值加在一起,他想知道哪个深度的节点权值之和最大?如果有......
  • 【蓝桥杯】小明要做一个跑步训练。初始时,小明充满体力,体力值计为10000。如果小明跑步,
    【问题描述】小明要做一个跑步训练。初始时,小明充满体力,体力值计为10000。如果小明跑步,每分钟损耗600的体力。如果小明休息,每分钟增加300的体力。体力的损耗和增加都是均匀变化的。小明打算跑一分钟、休息一分钟、再跑一分钟、再休息一分钟……如此循环。如果某个时刻......
  • [蓝桥杯] 管道 java题解
    importjava.util.*;/***管道*其实这道题核心根本不用管管道左边的如何,我们可以把左边当成注水口*/publicclassMain{staticintn;staticint[][]pipes;//阀门安排的地方staticintlen;//管道长度publicstaticvoidmain(String[]a......
  • 蓝桥杯2015年第十三届省赛真题-三羊献瑞
    一、题目观察下面的加法算式:   祥瑞生辉 + 三羊献瑞---------------------- 三羊生瑞气(如果有对齐问题,可以参看【图1】)其中,相同的汉字代表相同的数字,不同的汉字代表不同的数字。请你填写“三羊献瑞”所代表的4位数字(答案唯一),不要填写任何多余内......
  • 蓝桥杯2018年第十三届省赛真题-复数幂
    一、题目复数幂设i为虚数单位。对于任意正整数n,(2+3i)^n的实部和虚部都是整数。求(2+3i)^123456等于多少?即(2+3i)的123456次幂,这个数字很大,要求精确表示。答案写成"实部±虚部i"的形式,实部和虚部都是整数(不能用科学计数法表示),中间任何地方都不加空格,实部为正时前面......
  • 蓝桥杯2016年第十三届省赛真题-生日蜡烛
    一、题目生日蜡烛.某君从某年开始每年都举办一次生日party,并且每次都要吹熄与年龄相同根数的蜡烛。现在算起来,他一共吹熄了236根蜡烛。请问,他从多少岁开始过生日party的?请填写他开始过生日party的年龄数。注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字......
  • 蓝桥杯2021年第十三届省赛真题-直线
    一、题目【问题描述】    在平面直角坐标系中,两点可以确定一条直线。如果有多点在一条直线上,那么这些点中任意两点确定的直线是同一条。    给定平面上2×3个整点{(x,y)|0≤x<2,0≤y<3,x∈Z,y∈Z},即横坐标是0到1(包含0和1)之......
  • 蓝桥杯2014年第十三届省赛真题-猜字母
    一、题目猜字母  把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串。  接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母。  得到的新串再进行删除奇数位置字母的动作。如此下去,最后只剩下一个字母,请写出该字母。答案是......