当前位置:网站首页 > Java基础 > 正文

acm基础题java输入输出



[acwing周赛复盘] 第 60 场周赛

一、本周周赛总结

二、 4494. 吃饭

  • 1. 题目描述
  • 2. 思路分析
  • 3. 代码实现
  • 三、4495. 数组操作
  • 1. 题目描述
  • 2. 思路分析
  • 3. 代码实现
  • 四、4496. 吃水果
  • 1. 题目描述
  • 2. 思路分析
  • 3. 代码实现
  • 六、参考链接

acm基础题java输入输出

一、本周周赛总结

  • 第一次打acwing,一共三题,难度跳跃挺大。
  • acwing python竟然不支持from math import comb,震惊!还得自己实现。

二、 4494. 吃饭

链接: 4494. 吃饭

1. 题目描述

acm 比赛用python_acm 比赛用python

2. 思路分析

定级Easy。 签到题,明显只要m和k同时大于等于n即可。

3. 代码实现

 

三、4495. 数组操作

链接: 4495. 数组操作

1. 题目描述

acm 比赛用python_算法_02

2. 思路分析

还挺难的,主要我差分没怎么学过,当场研究。

  • 由于要找最小数,我们可以把a排序,最左边的非0数就是每次的答案。
  • 但是每次又要对数组中所有非0数据减去一个数值,这种区间操作就想到了是否可以lazy,只记录最前边的值,然后联想到这就是差分的方法。
  • a排序后建立差分数组diff,diff[0]=a[0],其它位置都代表a[i]比前一位置大几。
  • 那么我们只需要diff中找到第一个非0元素x,由于x前边一定是0,因此a[i]=diff[i],也就是第一次操作的答案x。
  • 同时后边的数的都要减去x,让diff[i]=0即可。
  • 后续答案继续找第一个非0的数,如果找不到,返回0.

3. 代码实现

 

四、4496. 吃水果

链接: 4496. 吃水果

1. 题目描述

acm 比赛用python_差分_03

2. 思路分析

组合数学。

  • 题意说忽略最左边的小朋友,但是他可以选m种水果,先把ans初始化成m。
  • 然后在除了排头的位置,选k个位置变水果种类,C(n-1,k)种选法。
  • 每次变水果,有m-1种方法,(m-1)^k。
  • 最烦的是acwing python3竟然不能引入math.comb,因此要自己写组合数公式

3. 代码实现

 

六、参考链接

版权声明


相关文章:

  • JAVA线程和进程是基础吗2024-11-08 09:02:06
  • java基础计算器2024-11-08 09:02:06
  • java判断基础对象和object对象2024-11-08 09:02:06
  • java编程基础难吗2024-11-08 09:02:06
  • 基础java的毕业设计2024-11-08 09:02:06
  • java中基础spi都有哪些2024-11-08 09:02:06
  • java后端基础题库2024-11-08 09:02:06
  • 极客学院 java基础362024-11-08 09:02:06
  • JAVA基础语音知识2024-11-08 09:02:06
  • java技术基础教学ppt2024-11-08 09:02:06