当前位置: 首页 > news >正文

蓝桥杯国赛训练 day1

目录

k倍区间

舞狮

交换瓶子


k倍区间

取模后算组合数就行

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;public class Main {static Scanner sc = new Scanner(System.in);public static void main(String[] args) {solve();}public static void solve() {int n = sc.nextInt();long k = sc.nextLong();//        System.out.println(calC(2,5));long[] arr = new long[n + 1];long[] pre = new long[n + 1];for (int i = 1; i <= n; i++) {arr[i] = sc.nextLong();pre[i] = pre[i - 1] + arr[i];}HashMap<Long,Long>hm=new HashMap<>();for(int i=1;i<=n;i++) {long preKey=pre[i]%k;hm.put(preKey, hm.getOrDefault(preKey, 0L)+1);}long cnt=0;if(hm.containsKey(0L)) cnt+=hm.get(0L);for(long l:hm.keySet()) {long preVal=hm.get(l);if(preVal>=2) {cnt+=calC(2,preVal);} }System.out.println(cnt);}/***   计算组合数* @param m 上标* @param n 下标* @return*/public static long calC(long m, long n) {m = Math.min(m, n - m); long result = 1;for (long i = 1; i <= m; i++) {result *= (n - m + i) ;result /= i;}return result;}
}

组合数模版

    /*** 计算组合数* @param m 上标* @param n 下标* @return*/public static long calC(long m, long n) {m = Math.min(m, n - m); long result = 1;for (long i = 1; i <= m; i++) {result *= (n - m + i) ;result /= i;}return result;}

舞狮

暴力就完了

不然应该是一个dfs 找环

import java.util.*;// xixi♡西
public class Main {static Scanner sc = new Scanner(System.in);public static void solve() {int n=sc.nextInt();long arr[]=new long[n];for(int i=0;i<n;i++) {arr[i]=sc.nextLong();}Arrays.sort(arr);ArrayList<ArrayList<Long>>list=new ArrayList<>();loop:for(long num:arr) {boolean isAdd =false;for(ArrayList<Long> forList:list) {if(num>forList.size()) {isAdd=true;forList.add(num);continue loop;}}if(isAdd==false) {ArrayList<Long>newList=new ArrayList<>();newList.add(num);list.add(newList);}}System.out.print(list.size());}public static void main(String[] args){int t = 1;
//        t = sc.nextInt();while (t-- > 0) {solve();}}}

交换瓶子

import java.util.*;public class Main {static Scanner sc = new Scanner(System.in);public static void main(String[] args) {solve();}public static void solve() {int n = sc.nextInt();int[] arr = new int[n + 1];for(int i = 1; i <= n; i ++){arr[i] = sc.nextInt();}int count = 0;for(int i = 1; i <= n; i ++){if(arr[i] != i){int temp = arr[i];arr[i] = arr[temp];arr[temp] = temp; count++;i = 1;}}System.out.println(count);}}

文章转载自:

http://LKnrmX1G.rcjyc.cn
http://b4orzmgz.rcjyc.cn
http://m2BkG239.rcjyc.cn
http://mTpF3uEi.rcjyc.cn
http://kmnEgwRj.rcjyc.cn
http://KcyFYIQ1.rcjyc.cn
http://g4m7Ookz.rcjyc.cn
http://j3iUmnwc.rcjyc.cn
http://cqDnqRNf.rcjyc.cn
http://clrml1L3.rcjyc.cn
http://COwkaWnR.rcjyc.cn
http://K5kORaOl.rcjyc.cn
http://9APyPA3G.rcjyc.cn
http://uPSe6uum.rcjyc.cn
http://6HojOkFK.rcjyc.cn
http://02wbcmYO.rcjyc.cn
http://0CmS3tYK.rcjyc.cn
http://9Ia8TJcT.rcjyc.cn
http://PXAbC3DG.rcjyc.cn
http://efFvLQir.rcjyc.cn
http://2ENG2rQF.rcjyc.cn
http://o7HP6dM8.rcjyc.cn
http://MIbFsodw.rcjyc.cn
http://JvzcoKMY.rcjyc.cn
http://mwftqEEA.rcjyc.cn
http://eajiuPCB.rcjyc.cn
http://OMO9UFuF.rcjyc.cn
http://DRDY7MuX.rcjyc.cn
http://XTskGLpZ.rcjyc.cn
http://bsZG1itB.rcjyc.cn
http://www.dtcms.com/a/228389.html

相关文章:

  • 软硬解锁通用Switch大气层1.9.0系统+20.0.1固件升级 图文教程 附大气层大气层固件升级整合包下载
  • HashMap 的底层原理
  • 【Vmware】虚拟机安装、镜像安装、Nat网络模式、本地VM8、ssh链接保姆篇(图文教程)
  • 0518蚂蚁暑期实习上机考试题3:小红的字符串构造
  • (17)课36:窗口函数的例题:例三登录时间与连续三天登录,例四球员的进球时刻连续进球。
  • 简单爬虫框架实现
  • Android Kotlin 算法详解:链表相关
  • Dify:启动 Web 服务的详细指南
  • Ubuntu 22.04 安装 Nacos 记录
  • ubuntu 20.04挂载固态硬盘
  • Windows下WSL(Ubuntu)安装1Panel
  • Ubuntu 挂载新盘
  • 飞腾D2000,麒麟系统V10,docker,ubuntu1804,小白入门喂饭级教程
  • seafile:ubuntu搭建社区版seafile12.0
  • 解决 Ubuntu 20.04 虚拟机中 catkin_make 编译卡死问题
  • CppCon 2014 学习:Anatomy of a Smart Pointer
  • windows安装和部署docker
  • 八.MySQL复合查询
  • LangChain操作指南
  • 手把手教你用Appsmith打造企业级低代码平台:从部署到性能调优实战
  • 化工厂爆炸事件看制造业AI转型
  • Manus AI与多语言手写识别的创新革命:从技术突破到行业赋能
  • SpringBoot 自定义注解实现限流
  • 【操作系统原理08】文件管理
  • (三)动手学线性神经网络:从数学原理到代码实现
  • git clone报错:SSL certificate problem: unable to get local issuer certificate
  • 物联网数据归档方案选择分析
  • 【Bluedroid】蓝牙启动之sdp_init 源码解析
  • 帝可得- 人员管理
  • Linux系统-基本指令(5)