6337. 统计桌面上的不同数字

代码

后面出现的数字都是小于 n 的。

n = 1 时,答案是 1。

n > 1时:

  • 第一天,n % (n - 1) == 1,n - 1会被加入
  • 第二天,(n - 1) % (n - 2) == 1,n - 2 被加入

递推,一直到 2 的时候,不会加入 1,因为任何数 mod 1 都是 0,且共 1e9 天来加入数字,远大于 100,一定可以把该加入的都加入,所以共有 (n - 1) 个数字

注意特判 n 为 1 的情况

class Solution {
public int distinctIntegers(int n) {
if (n == 1) return 1;
return n - 1;
}
}

6338. 猴子碰撞的方法数

代码

每个猴子都有两种移动的方向,那么总的情况数就是 2^n

求发生碰撞的数量,太多了,我们反过来求,求碰撞的数量

正难则反

查看案例,发现不发生碰撞的情况只有两种:同时顺时针 / 逆时针

所以题目转化为了求 pow(2, n) - 2 % MOD 的形式

直接采用快速幂即可,但是因为快速幂之后要 减二,会产生负数,所以我们 减2 之后加上 mod,再进行取模

(quick_power(2, n, MOD) - 2 + MOD) % MOD

题目有些歧义,说的是 移动后 位于同一顶点才算碰撞,但是样例给定的是移动中碰撞也算了。

例如当 n = 4 时上面两个左右交换,下面两个左右交换,也不冲突,但是样例没有算。

class Solution {
public int monkeyMove(int n) {
int MOD = 1000000007;
return (quick_power(2L, n, MOD) - 2 + MOD) % MOD;
} private static int quick_power(long a, long b, long p) {
long ans = 1;
while (b > 0) {
if ((b & 1) == 1) ans = ans * a % p;
a = a * a % p;
b >>= 1;
} return (int) ans;
}
}

6339. 将珠子放入背包中

代码

一眼 dp,再看数据量,太大了,二维dp会超时,换方法

题目:

将序列分成 k 段,===》 切 k - 1 次,有 k - 1 个分割点,求分割点左右元素之和

求出来所有的相邻元素和,排序,求最大的 k - 1个 和 最小的 k - 1个之差即可

特殊情况::子数组中,只有最左边的一个 / 最右边的一个

但是因为所有情况都要选择这两个值,而且求的是差值,就抵消了、

所以我们只看里面的元素即可

class Solution {
public long putMarbles(int[] w, int k) {
int[] s = new int[w.length - 1];
for (int i = 0; i + 1 < w.length; i++)
s[i] = w[i] + w[i + 1]; Arrays.sort(s); long a = 0, b = 0;
for (int i = 0; i < k - 1; i++) {
a += s[i];
b += s[s.length - i - 1];
} return Math.abs(a - b);
}
}

LeetCode_周赛_330的更多相关文章

  1. 周赛-KIDx's Pagination 分类: 比赛 2015-08-02 08:23 7人阅读 评论(0) 收藏

    KIDx's Pagination Time Limit: 2000/1000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) S ...

  2. 2015浙江财经大学ACM有奖周赛(一) 题解报告

    2015浙江财经大学ACM有奖周赛(一) 题解报告 命题:丽丽&&黑鸡 这是命题者原话. 题目涉及的知识面比较广泛,有深度优先搜索.广度优先搜索.数学题.几何题.贪心算法.枚举.二进制 ...

  3. Leetcode 第133场周赛解题报告

    今天参加了leetcode的周赛,算法比赛,要求速度比较快.有思路就立马启动,不会纠结是否有更好的方法或代码可读性.只要在算法复杂度数量级内,基本上是怎么实现快速就怎么来了. 比赛时先看的第二题,一看 ...

  4. 牛客OI周赛9-提高组题目记录

    牛客OI周赛9-提高组题目记录 昨天晚上做了这一套比赛,觉得题目质量挺高,而且有一些非常有趣而且非常清奇的脑回路在里边,于是记录在此. T1: 扫雷 题目链接 设 \(f_i\) 表示扫到第 \(i\ ...

  5. codeforces 14A - Letter & codeforces 859B - Lazy Security Guard - [周赛水题]

    就像title说的,是昨天(2017/9/17)周赛的两道水题…… 题目链接:http://codeforces.com/problemset/problem/14/A time limit per ...

  6. 牛客OI周赛8-提高组A-用水填坑

    牛客OI周赛8-提高组A-用水填坑 题目 链接: https://ac.nowcoder.com/acm/contest/403/A 来源:牛客网 时间限制:C/C++ 2秒,其他语言4秒 空间限制: ...

  7. 计蒜客 28449.算个欧拉函数给大家助助兴-大数的因子个数 (HDU5649.DZY Loves Sorting) ( ACM训练联盟周赛 G)

    ACM训练联盟周赛 这一场有几个数据结构的题,但是自己太菜,不会树套树,带插入的区间第K小-替罪羊套函数式线段树, 先立个flag,BZOJ3065: 带插入区间K小值 计蒜客 Zeratul与Xor ...

  8. 周赛Problem 1108: 蛋糕(二分)

    1108: 蛋糕 Time Limit: 1 Sec  Memory Limit: 128 MB Submit: 17  Solved: 4 Description 杨神打代码打得有点疲倦,于是他想要 ...

  9. CSDN 轻松周赛赛题:能否被8整除

    轻松周赛赛题:能否被8整除 题目详情 给定一个非负整数,问能否重排它的全部数字,使得重排后的数能被8整除. 输入格式: 多组数据,每组数据是一个非负整数.非负整数的位数不超过10000位. 输出格式 ...

  10. 计蒜客 ACM训练联盟周赛 第一场 Christina式方格取数 思维

    助手Christina发明了一种方格取数的新玩法:在n*m的方格棋盘里,每个格子里写一个数.两个人轮流给格子染色,直到所有格子都染了色.在所有格子染色完后,计算双方的分数.对于任意两个相邻(即有公共边 ...

随机推荐

  1. 定位java程序中占用cpu最高的线程堆栈信息

    找出占用cpu最高的线程堆栈信息 在java编码中,有时会因为粗心导致cpu占用较高的情况,为了避免影响程序的正常运行,需要找到问题并解决.这里模拟一个cpu占用较高的场景,并尝试定位到代码行. 示例 ...

  2. Linux Polkit本地权限提升漏洞(CVE-2021-4034)

    Linux Polkit本地权限提升漏洞(CVE-2021-4034) 免责声明: 漏洞描述 影响范围 漏洞检测 漏洞复现 修复建议 免责声明: 发现这个漏洞被各大预警平台刷屏了,目前主流Linux系 ...

  3. 6、将两个字符串连接起来,不使用strcat函数

    /* 将两个字符串连接起来,不使用strcat函数 */ #include <stdio.h> #include <stdlib.h> void strCat(char *pS ...

  4. [排序算法] 直接/折半插入排序 (C++)

    插入排序解释 插入排序很好理解,其步骤是 :先将第一个数据元素看作是一个有序序列,后面的 n-1 个数据元素看作是未排序序列.对后面未排序序列中的第一个数据元素在这个有序序列中进行从后往前扫描,找到合 ...

  5. python安装/环境变量配置/多版本共存

    Python学习之路Day02: 一.今日学习内容概括: 计算机五大组成部分详解 计算机三大核心硬件 操作系统 编程与编程语言 编程语言的发展 编程语言分类 python解释器 Python Pyth ...

  6. ArcGIS 通过字段计算 设置顺序编码

    地块编号="前缀" & left("0000",4-len( [FID]+1)) & ([FID] +1)

  7. python中调用C代码

    首先我们需要明晰为什么我们需要在python中调用C语言的代码,原因不外乎有二: 其一,python不擅长"大量运算"任务,而擅长于编写简单,"IO密集型作业" ...

  8. 【Java SE进阶】Day06 线程、同步

    一.线程 1.多线程原理 流程图 内存图解说明 创建线程的方式 继承Thread类 实现 Runnable接口 2.继承Thead类 3.实现Runnable接口 实现接口,重写run方法 最终均需要 ...

  9. 【大数据面试】【框架】Hadoop-入门、HDFS

    一.入门 1.常用端口号 2.x 50070:查看HDFS Web-UI 8088:查看MapReduce运行情况 19888:历史服务器 9000:hdfs客户端访问集群 50090:Seconda ...

  10. hyperf 配置 https 访问

    最近用hyperf写了支付系统,本地调试支付完成,打包上线部署,要解决https协议进行相应的访问,但是hyperf 官方没有找到相关的ssl配置说明.搜了一下soole还是有几个案例说明,据我的了解 ...