当前位置:网站首页>【7.29】代码源 - 【排列】【石子游戏 II】【Cow and Snacks】【最小生成数】【数列】
【7.29】代码源 - 【排列】【石子游戏 II】【Cow and Snacks】【最小生成数】【数列】
2022-07-31 15:38:00 【ZhgDgE】
#746. 排列
题意: T ≤ 1000 , 1 ≤ n ≤ 100 T\leq 1000,1\leq n\leq 100 T≤1000,1≤n≤100
思路:首先按照 a i a_i ai 降序排列。当 n ≥ 3 n\geq 3 n≥3 时,最坏情况是所有的增益都到了某个人 a i a_i ai 的身上,然后这个人的增益到了其他某人 a j a_j aj (不是前面的 a i − 1 a_{i-1} ai−1)身上,这样的话会使得 a i − 1 , a i a_{i-1},a_i ai−1,ai 之间的差 a i − a i − 1 a_i-a_{i-1} ai−ai−1 最大化。如果最大化之后这两个数仍然非增,那么这两个数不会有矛盾。对于每个 i i i 都判断一下即可。注意如果 a a a 值相同的,要按照 b b b 值升序排列,这样能够使得差值最大化。
AC代码:http://oj.daimayuan.top/submission/309613
#738. 石子游戏 II
题意:共有 n ( 1 ≤ n ≤ 1 0 6 ) n(1\leq n\leq 10^6) n(1≤n≤106) 堆石子,其中第 i i i 堆最初含有 a i ( 1 ≤ a i ≤ 1 0 9 ) a_i(1\leq a_i\leq 10^9) ai(1≤ai≤109) 个石子。他们轮流执行下列操作之一:
把一堆个数为奇数的石子分成两堆,两堆都不能空。
把两堆个数为偶数的石子合成一堆。
不能执行任何操作的人将输掉游戏。问先手必胜或必败。
思路:首先发掘一些性质。操作奇数堆,奇数的个数是不变的,操作一次会多一个偶数;操作偶数堆,偶数个数只会变少,操作一次少一个偶数。那么容易知道偶数堆的数量为偶的局面是必胜态,因为最终偶数堆只会为奇。注意特判先手初始无法操作的情况。
AC代码:http://oj.daimayuan.top/submission/309308
#807. Cow and Snacks
题意:
有编号从 1 1 1 开始的 n n n 种小吃,每种小吃只有一份。有 m m m 个客人会来,每个客人有两种最喜欢的口味。客人来到的次序可以随意安排。每个客人来到农场时,会把他喜欢的口味的小吃全部吃掉(如果有的话)。如果没有他喜欢的口味,那么他就会伤心地离开。
请问令客人如何排队,能使伤心的客人最少?输出最少的伤心的客人的数量。
思路:首先我们考虑一下没有任何人伤心的情况,如果把数据构建为图的话,相当于这些人的边构成了 一棵树 。如果有人伤心,那么一定是两个点都落在了一棵树上,也就是形成了环,不再是一棵树。可以用并查集维护连通性,看有多少人的两点落在了一棵树。
AC代码:http://oj.daimayuan.top/submission/309775
#811. 最小生成数
题意: n − 1 n - 1 n−1 个点,从 2 2 2 到 n ( 2 ≤ n ≤ 1 0 7 ) n(2\leq n\leq 10^7) n(2≤n≤107),点 a a a 与点 b b b 的边权为 lcm ( a , b ) \text{lcm}(a,b) lcm(a,b),求出 n − 1 n−1 n−1 个点的最小生成树。
思路:贪心。对于合数 x x x ,我们将它连向它的最小质因子 m i n p ( x ) minp(x) minp(x) ,这样花费为 x x x 。连完之后,发现合数都连到了质数身上,我们还要让质数连通。容易知道 2 − 3 , 2 − 5 , 2 − 7 ⋯ 2-3,2-5,2-7\cdots 2−3,2−5,2−7⋯ 比 2 − 3 , 3 − 5 , 5 − 7 ⋯ 2-3,3-5,5-7\cdots 2−3,3−5,5−7⋯ 更优,因此所有质数连到 2 2 2 身上。
AC代码:http://oj.daimayuan.top/submission/309654
#664. 数列
题意:给定 d , p ( 1 ≤ d , p ≤ 1 0 9 ) d,p(1\leq d,p\leq 10^9) d,p(1≤d,p≤109) ,求满足以下性质的序列的个数,对 p p p 取模。
- 非空,长度任意。 1 ≤ a 1 < a 2 < ⋯ < a n − 1 < a n ≤ d 1\leq a_1 <a_2<\cdots<a_{n-1}<a_n\leq d 1≤a1<a2<⋯<an−1<an≤d 。前缀异或序列 c c c 递增。
思路:首先挖掘出来性质:序列的最高位 1 1 1 必须是递增的,满足这个性质即可。
那么序列长度不会超过 31 31 31 。我写的时候的方法:定义 d p ( i , j ) dp(i,j) dp(i,j) 表示长度为 i i i 且第 i i i 个元素的最高位为 j j j 的方案数。 d p ( i , j ) = ∑ k = 0 j − 1 ( d p ( i − 1 , k ) × c o u n t ( j ) ) dp(i,j)=\sum_{k=0}^{j-1}{(dp(i-1,k)\times count(j))} dp(i,j)=∑k=0j−1(dp(i−1,k)×count(j)) , c o u n t ( j ) count(j) count(j) 表示最高位为 j j j 的范围内的数字个数。时间复杂度 O ( n + log 3 n ) O(n+\log ^3 n) O(n+log3n)
但是题解给出的思路更简单。我们按照最高位分组,例如 d = 9 : [ 1 ] , [ 10 , 11 ] , [ 100 , 101 , 110 , 111 ] , [ 1000 , 1001 ] d=9:[1],[10,11],[100,101,110,111],[1000,1001] d=9:[1],[10,11],[100,101,110,111],[1000,1001] ,那么每一组都有 c o u n t ( j ) + 1 count(j)+1 count(j)+1 种选择(选某个或不选),乘法原理乘起来即可。时间复杂度 O ( n ) O(n) O(n) 。
AC代码:http://oj.daimayuan.top/submission/309743
今天的题有点水。刷了一半多了,马上就能刷完了。
边栏推荐
- ML.NET related resources
- The new BMW 3 Series is on the market, with safety and comfort
- radiobutton的使用
- "Autumn Recruitment Series" MySQL Interview Core 25 Questions (with answers)
- R language moves time series data forward or backward (custom lag or lead period): use the lag function in the dplyr package to move the time series data forward by one day (set the parameter n to a p
- BGP综合实验(建立对等体、路由反射器、联邦、路由宣告及聚合)
- TRACE32 - SNOOPer-based variable logging
- 修改SQL语言实现Mysql 多表关联查询优化
- JVM参数解析 Xmx、Xms、Xmn、NewRatio、SurvivorRatio、PermSize、PrintGC「建议收藏」
- Linux check redis version (check mongodb version)
猜你喜欢
Why don't you make a confession during the graduation season?
【Meetup预告】OpenMLDB+OneFlow:链接特征工程到模型训练,加速机器学习模型开发
基于Redis(SETNX)实现分布式锁,案例:解决高并发下的订单超卖,秒杀
The use of button controls
Visualize GraphQL schemas with GraphiQL
radiobutton的使用
TextBlock控件入门基础工具使用用法,取上法入门
Premiere Pro 2022 for (pr 2022)v22.5.0
"Autumn Recruitment Series" MySQL Interview Core 25 Questions (with answers)
Kubernetes原理剖析与实战应用手册,太全了
随机推荐
Oracle动态注册非1521端口
Efficient use of RecyclerView Section 3
Getting Started with TextBlock Control Basic Tools Usage, Get Started
Oracle dynamically registers non-1521 ports
Premiere Pro 2022 for (pr 2022)v22.5.0
使用 GraphiQL 可视化 GraphQL 架构
MySQL的相关问题
复制延迟案例(1)-最终一致性
The normal form of the database (first normal form, second normal form, third normal form, BCNF normal form) "recommended collection"
Vb how to connect mysql_vb how to connect to the database collection "advice"
在资源管理类中提供对原始资源的访问——条款15
vb中如何连接mysql_vb怎么连接数据库「建议收藏」
Bilateral filtering acceleration "recommended collection"
org.apache.jasperException(could not initialize class org)
Applicable Scenarios of Multi-Master Replication (1) - Multi-IDC
ASP.NET Core generates continuous Guid
第05章 存储引擎【1.MySQL架构篇】【MySQL高级】
RecyclerView高效使用第三节
JVM参数解析 Xmx、Xms、Xmn、NewRatio、SurvivorRatio、PermSize、PrintGC「建议收藏」
Matlab矩阵基本操作(定义,运算)