E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
AcWing算法提高
Acwing
892. 台阶-Nim游戏
此时我们需要将奇数台阶看做一个经典的Nim游戏,如果先手时奇数台阶上的值的异或值为0,则先手必败,反之必胜证明:先手时,如果奇数台阶异或非0,根据经典Nim游戏,先手总有一种方式使奇数台阶异或为0,于是先手留了奇数台阶异或为0的状态给后手于是轮到后手:①当后手移动偶数台阶上的石子时,先手只需将对手移动的石子继续移到下一个台阶,这样奇数台阶的石子相当于没变,于是留给后手的又是奇数台阶异或为0的状态②
青衫客36
·
2023-10-10 18:47
数学知识
c++
算法
[
AcWing
] 892. 台阶-Nim游戏 (C++实现)博弈论Nim游戏例题
[
AcWing
]892.台阶-Nim游戏(C++实现)博弈论Nim游戏例题1.题目2.读题(需要重点注意的东西)3.解法4.可能有帮助的前置习题5.所用到的数据结构与算法思想6.总结1.题目2.读题(需要重点注意的东西
Cloudeeeee
·
2023-10-10 18:47
AcWing算法日记
c++
算法
题解【
acwing
】892:台阶-Nim游戏
题目描述点击进入题目现在,有一个n级台阶的楼梯,每级台阶上都有若干个石子,其中第i级台阶上有ai个石子(i≥1)。两位玩家轮流操作,每次操作可以从任意一级台阶上拿若干个石子放到下一级台阶中(不能不拿)。已经拿到地面上的石子不能再拿,最后无法进行操作的人视为失败。问如果两人都采用最优策略,先手是否必胜。思路这题分两种情况先手必胜状态:当后手移动偶数台阶上的石子时,先手只需将对手移动的石子继续移到下一
我是亮亮姐
·
2023-10-10 18:16
AcWing
891. Nim游戏&&892.台阶-Nim游戏&&893. 集合-Nim游戏
https://www.
acwing
.com/video/312/博弈论是数论里面的,我感觉博弈论好像是要记住每一个情况的模板。视频如上,看了能加深模板的理解。
罚时大师月色
·
2023-10-10 18:44
博弈论
算法
【
ACWing
】892. 台阶-Nim游戏
题目地址:https://www.
acwing
.com/problem/content/894/有个nnn级台阶,每级台阶有若干石子,第iii级台阶上有aia_iai个石子(i≥1i\ge1i≥1)。
记录算法题解
·
2023-10-10 18:43
AC
数学
游戏
算法
AcWing
892. 台阶-Nim游戏 (博弈论-公平组合游戏)
另一类的公平组合游戏,台阶问题。这一题的方法是我们只需要去异或奇数项(奇数台阶,从1开始)。证明方法类似,如果对手动了偶数项台阶的石头那我们模仿他动奇数项台阶的石头,这样的话又能维护奇数项台阶石子相同。importjava.io.*;classMain{staticBufferedReaderbr=newBufferedReader(newInputStreamReader(System.in))
SoKeeGumpCN
·
2023-10-10 18:13
数学算法
AcWing
892 台阶-Nim游戏
题目描述:现在,有一个n级台阶的楼梯,每级台阶上都有若干个石子,其中第i级台阶上有ai个石子(i≥1)。两位玩家轮流操作,每次操作可以从任意一级台阶上拿若干个石子放到下一级台阶中(不能不拿)。已经拿到地面上的石子不能再拿,最后无法进行操作的人视为失败。问如果两人都采用最优策略,先手是否必胜。输入格式第一行包含整数n。第二行包含n个整数,其中第i个整数表示第i级台阶上的石子数ai。输出格式如果先手方
昂昂累世士
·
2023-10-10 17:12
算法基础课
博弈论
台阶Nim
AcWing
892 台阶-Nim游戏 题解 (博弈论)
思路:只考虑奇数台阶上的石子,就是一个普通Nim游戏,最后面对的必胜状态是所有台阶中就剩第一级台阶还有一个石子,拿走,对手必输,此时左右奇数台阶上的石子数量异或和是!=0,所以面对的奇数级台阶上的石子数量异或和为0就是必败状态,不考虑偶数级台阶是因为对手可以从偶数级台阶往奇数级台阶拿石子维持必胜状态,所以如果开局时,奇数级台阶上的石子数量异或和为奇数,则先手必胜,否则必败#includeusing
QingQingDE23
·
2023-10-10 17:41
#
boyi算法
数学知识
c++
ACWING
892. 台阶-Nim游戏 (博弈论)
现在,有一个n级台阶的楼梯,每级台阶上都有若干个石子,其中第i级台阶上有ai个石子(i≥1)。两位玩家轮流操作,每次操作可以从任意一级台阶上拿若干个石子放到下一级台阶中(不能不拿)。已经拿到地面上的石子不能再拿,最后无法进行操作的人视为失败。问如果两人都采用最优策略,先手是否必胜。输入格式第一行包含整数n。第二行包含n个整数,其中第i个整数表示第i级台阶上的石子数ai。输出格式如果先手方必胜,则输
emplace_back
·
2023-10-10 17:11
ACWING
算法
Acwing
_892台阶-Nim游戏
题目描述:现在,有一个n级台阶的楼梯,每级台阶上都有若干个石子,其中第i级台阶上有ai个石子(i≥1)。两位玩家轮流操作,每次操作可以从任意一级台阶上拿若干个石子放到下一级台阶中(不能不拿)。已经拿到地面上的石子不能再拿,最后无法进行操作的人视为失败。问如果两人都采用最优策略,先手是否必胜。输入格式第一行包含整数n。第二行包含n个整数,其中第i个整数表示第i级台阶上的石子数ai。输出格式如果先手方
DJL_DJL_DJL
·
2023-10-10 17:41
数论
数论
算法
Nim游戏
博弈论
AcWing
892. 台阶-Nim游戏
博弈论
AcWing
892.台阶-Nim游戏原题链接
AcWing
892.台阶-Nim游戏算法标签数学知识博弈论Nim游戏思路代码#include#defineintlonglong#defineabsfabs
飞滕人生TYF
·
2023-10-10 17:09
算法
游戏
算法
c++
892. 台阶-Nim游戏
https://www.
acwing
.com/problem/content/894/结论:假设n堆石子,石子数目分别是a1,a2,…,an,如果a1⊕a3⊕a5…⊕an≠0,先手必胜;否则先手必败。
幽殇默
·
2023-10-10 17:09
acwing
算法
acwing
.台阶-nim游戏
现在,有一个n级台阶的楼梯,每级台阶上都有若干个石子,其中第i级台阶上有ai个石子(i≥1)。两位玩家轮流操作,每次操作可以从任意一级台阶上拿若干个石子放到下一级台阶中(不能不拿)。已经拿到地面上的石子不能再拿,最后无法进行操作的人视为失败。问如果两人都采用最优策略,先手是否必胜。输入格式第一行包含整数n。第二行包含n个整数,其中第i个整数表示第i级台阶上的石子数ai。输出格式如果先手方必胜,则输
yusen_123
·
2023-10-10 17:37
数论
游戏
算法
JAVA—通过数组模拟队列
练习指路☞
AcWing
一、创建队列1.队列头2.队列尾3.队列大小4.数组用于存储数据注意队头和队尾的初始值,添加数据是队尾移动,输出时注意队头的数据classarrayQueues{intsize;/
唐崖凌
·
2023-10-10 15:12
数据结构
java
开发语言
算法
JAVA用数组模拟栈
JAVA用数组模拟栈(记录)文章目录JAVA用数组模拟栈(记录)前言一、创建栈二、栈的方法三、整体代码四、总结前言用数组模拟栈栈是后进先出比链表简单好多φ(゜▽゜*)♪练习之路☞
acwing
一、创建栈classarrayStack
唐崖凌
·
2023-10-10 15:11
数据结构
java
数据结构
Acwing
.4382 快速打字(双指针)
题目芭芭拉是一个速度打字员。为了检查她的打字速度,她进行了一个速度测试。测试内容是给定她一个字符串I,她需要将字符串正确打出。但是,芭芭拉作为一个速度打字员,在追求速度的同时,难免会发生一些错误,按错一些按键。最终,芭芭拉打出的字符串为P。现在,芭芭拉想知道,能否仅通过删除一些额外字母的方式,将字符串P变为字符串I。如果可以,则输出需要删除的字母数量,如果不行,则输出IMPOSSIBLE。输入格式
iAkuya
·
2023-10-10 10:57
java算法实录
算法
java
前缀和与差分prefix_sum and difference【算法模板笔记】
前缀和与差分笔记&模板前缀和与差分prefix_sumanddifference-唔知叫咩emm-博客园(cnblogs.com)不适合做代码笔记,复习主要是复习思路,要看就看模板题常用代码模板1——基础算法-
AcWing
唔想起名
·
2023-10-10 05:15
#
区间信息维护与查询
算法
c++
学习
数据结构
蓝桥杯
2022.4.18讲课——基础算法前缀和和差分
目录795.前缀和-
AcWing
题库基础知识797.差分-
AcWing
题库基础知识前缀和应用差分应用795.前缀和-
AcWing
题库基础知识#include#include#includeusingnamespacestd
俄罗斯刺沙蓬
·
2023-10-10 05:39
c++
费马小定理,876. 快速幂求逆元
876.快速幂求逆元-
AcWing
题库给定n组ai,pi,其中pi是质数,求ai模pi的乘法逆元,若逆元不存在则输出impossible。注意:请返回在0∼p−1之间的逆元。
Landing_on_Mars
·
2023-10-10 04:57
数论
数学
算法
数论
逆元
AcWing
322. 消木块
由于木块可以由一些木块的消除,使两边相同颜色的合并所以我们设定一个归并方式,即每个区间记录一下右边的延展性。(等于左边找右边)设\(f[i][j][k]\)为\([i,j]\)区间,右侧有\(k\)个颜色\(=a[j]\)的。考虑两种转移方式。第一种操作:直接搞掉右边的。设\(i#include#includeusingnamespacestd;constintN=205;intn,a[N],f[
DMoRan_Sky
·
2023-10-09 23:33
算法
Acwing
322. 消木块(区间dp)
题目传送门题意:给你一个长度为n的序列,你每次可以选择一个连续块[i,j][i,j][i,j]消去,消去之后i−1i-1i−1和j+1j+1j+1连接,这一操作的得分为(j−i+1)2(j-i+1)^2(j−i+1)2,问你最多能得多少分。思路:很容易想到f[i][j]f[i][j]f[i][j]表示区间[i,j][i,j][i,j]的最大分数,但是如果第j+1j+1j+1个和第j个一样的话,我们
ACfunhsl
·
2023-10-09 23:57
题解
acwing
322消木块
这个题目就当一个见识吧设f[i][j][k]表示当前的状态是[i,j]并且j后面还有k个与j颜色相同的木块的最大价值第一种情况,当第j块和第j-1块颜色相同时,f[i][j][k]=f[i][j-1][k+1]第二种情况,当第j块和第j-1块颜色不同时,考虑最后那一堆颜色相同的怎么消去的如果这一堆没有跟其他颜色相同的合并,那么对于任意一种操作,我们都可以把消去最后这一堆的子操作放在最开始,即最开始
dingxingdi
·
2023-10-09 23:25
算法
洛谷 P1638:逛画展 ← 单调队列
【题目来源】https://www.luogu.com.cn/problem/P1638https://www.
acwing
.com/problem/content/653/【题目描述】博览馆正在展出由世上最佳的
hnjzsyjyj
·
2023-10-09 16:07
信息学竞赛
#
队列
单调队列
POJ 3481、HDU 1908、
AcWing
5125:双端队列 ← STL map
pid=1908
AcWing
5125:https://www.
acwing
.com/problem/content/5128/【题目描述】某银行的业务处理系统原理如下。初始时,待处理业务队列(简称
hnjzsyjyj
·
2023-10-09 16:32
信息学竞赛
#
队列
双端队列
【
Acwing
1010】拦截导弹(LIS+贪心)题解
题目描述思路分析本题有两问,第一问直接用lis的模板即可,下面重点看第二问思路是贪心:贪心流程:从前往后扫描每一个数,对于每个数:情况一:如果现有的子序列的结尾都小于当前的数,则创建子序列情况二:将当前的数放到结尾大于等于它的最小的子序列后面举个例子:360322555222.....从左到右遍历上面序列,当遍历到222的时候,此时已经存在了两个子序列“360322”和“555”,两个子序列的结尾
亿维数组
·
2023-10-09 08:19
算法综合
Acwing
动态规划
算法
c++
acwing
Acwing
790. 数的三次方根
注:题目来源
Acwing
题目:给定一个浮点数n,求它的三次方根。输入格式共一行,包含一个浮点数n。输出格式共一行,包含一个浮点数,表示问题的解。注意,结果保留66位小数。
cwn_
·
2023-10-09 06:49
C++简单应用
图论
acwing
790. 数的三次方根(二分法)
题目:790.数的三次方根#include#include#includeusingnamespacestd;intmain(){doublen;scanf("%lf",&n);doublei=-10000,j=10000;while(i+1e-8
岁忧
·
2023-10-09 06:18
AcWing
c++
数据结构
动态规划
二分法
题解
AcWing
790.数的三次方根
题目链接
AcWing
790.数的三次方根引用引用一下还不错的题解第一WA者金银花
AcWing
790.数的三次方根zning
AcWing
790.浮点数二分法_Javamodeming
AcWing
790.数的三次方根
SolitudeAlma
·
2023-10-09 06:17
题解
算法
Acwing
蓝桥训练 790. 数的三次方根
给定一个浮点数n,求它的三次方根。输入格式共一行,包含一个浮点数n。输出格式共一行,包含一个浮点数,表示问题的解。注意,结果保留6位小数。数据范围−10000≤n≤10000输入样例:1000.00输出样例:10.000000这道题明显的二分裸题,没什么好说的。但是有一个点,我一直容易犯错。就拿这个题来说:对一个数num我起初的想法是设定二分查找的区间是[-num,num]这是有问题。问题在于当n
镇长1998
·
2023-10-09 06:16
蓝桥杯
Acwing
acwing
790. 数的三次方根
给定一个浮点数n,求它的三次方根。输入格式共一行,包含一个浮点数n。输出格式共一行,包含一个浮点数,表示问题的解。注意,结果保留66位小数。数据范围−10000≤n≤10000输入样例:1000.00输出样例:10.000000#includeusingnamespacestd;intmain(){doublex;scanf("%lf",&x);doublel=-10000,r=10000;whi
九分热
·
2023-10-09 06:46
蓝桥杯
c++
c语言
算法
AcWing
790.数的三次方根
题解:数的三次方根题目描述思路分析代码实现题目描述题目链接:https://www.
acwing
.com/problem/content/792/思路分析这个题的思路可以参考
AcWing
680.剪绳子的思路拿到这个题想到的是浮点数的二分
算法真不会
·
2023-10-09 06:16
AcWing算法学习
算法
二分法
c++
【
ACWing
】790. 数的三次方根
题目地址:https://www.
acwing
.com/problem/content/792/给定一个浮点数nnn,求其三次方根。保留666位小数。输入格式:共一行,包含一个浮点数nnn。
记录算法题解
·
2023-10-09 06:16
AC
数组
字符串
链表与模拟
算法
c++
Acwing
790. 数的三次方根
给定一个浮点数n,求它的三次方根。输入格式共一行,包含一个浮点数n。输出格式共一行,包含一个浮点数,表示问题的解。注意,结果保留6位小数。数据范围−10000≤n≤10000输入样例:1000.00输出样例:10.000000思路在区间中找到一个接近的值#includeusingnamespacestd;intmain(){doublex;cin>>x;输入浮点数doublel=-10000,r=
疯狂java杰尼龟
·
2023-10-09 06:15
#
Awing算法基础课
Acwing
数的三次方根
AcWing
790. 数的三次方根
给定一个浮点数n�,求它的三次方根。输入格式共一行,包含一个浮点数n�。输出格式共一行,包含一个浮点数,表示问题的解。注意,结果保留66位小数。数据范围−10000≤n≤10000输入样例:1000.00输出样例:10.000000代码:#includeusingnamespacestd;intmain(){ doublex; cin>>x; doublel=-10000,r=1000
m0_74854377
·
2023-10-09 06:44
算法
c++
开发语言
【
AcWing
】790. 数的三次方根
790.数的三次方根给定一个浮点数n,求它的三次方根。输入格式共一行,包含一个浮点数n。输出格式共一行,包含一个浮点数,表示问题的解。注意,结果保留6位小数。数据范围−10000≤n≤10000输入样例:1000.00输出样例:10.000000思路:我们采用二分查找,区间为-10000~10000,取中间值为mid值,当mid的三次方大于等于x时,右边界为mid,否则左边界变为mid。最后输出找
小萨摩!
·
2023-10-09 06:44
AcWing
c++
算法
开发语言
Acwing
790.数的三次方根
解题思路:#includeusingnamespacestd;intmain(){doublex;cin>>x;doublel=-10000,r=10000;while(r-l>1e-8){doublemid=(l+r)/2;if(mid*mid*mid>=x)r=mid;elsel=mid;}//这里输出l或者r都可以,因为足够接近printf("%lf\n",l);//printf默认保留6位
BH04250909
·
2023-10-09 06:40
acwing
C++刷题
算法
c++
Acwing
.790 数的三次方根
题目给定一个浮点数n,求它的三次方根。输入格式共一行,包含一个浮点数n。输出格式共—行,包含一个浮点数,表示问题的解。注意,结果保留6位小数。数据范围-10000≤n≤10000输入样例:1000.00输出样例:10.000000题解#includeusingnamespacestd;intmain(){doublex;cin>>x;doublel=-10000,r=10000;while(r-l
iAkuya
·
2023-10-09 06:09
java算法实录
算法
Acwing
.800 数组元素的目标和
题目给定两个升序排序的有序数组A和B,以及一个目标值x。数组下标从0开始。请你求出满足A[i]+Bi]=x的数对(i,j)。数据保证有唯一解。输入格式第一行包含三个整数n,m,x,分别表示A的长度,B的长度以及目标值x。第二行包含n个整数,表示数组A。第三行包含m个整数,表示数组B。输出格式共—行,包含两个整数i和j.数据范围数组长度不超过100000。同一数组内元素各不相同。1≤数组元素≤109
iAkuya
·
2023-10-09 06:43
java算法实录
算法
1303 斐波那契前 n 项和(矩阵乘法)
数据范围1≤n≤2000000000,1≤m≤1000000010输入样例:51000输出样例:12来源:https://www.
acwing
.co
yuzhang_zy
·
2023-10-09 02:51
acwing-提高
算法
acwing
(矩阵乘法+快速幂) 1303. 斐波那契前 n 项和(蓝桥杯)
题目:1303.斐波那契前n项和大佬思路#includeusingnamespacestd;typedeflonglongLL;typedefpairPII;constintN=1e5+10;constintmod=1000000009;LLn,m;LLs[3][3]={{2,0,-1},{1,0,0},{0,1,0}};voidmult1(LLx[3],LLy[][3]){LLt[3]={0};
岁忧
·
2023-10-09 02:51
AcWing
蓝桥杯
蓝桥杯
c++
算法
矩阵乘法
快速幂
[
Acwing
] 1303. 斐波那契前 n 项和 矩阵快速幂
前言在计算斐波那契数列的时候,F[n]=F[n−1]+F[n−2]F[n]=F[n-1]+F[n-2]F[n]=F[n−1]+F[n−2],因此F[n]F[n]F[n]直接相关于F[n−1],F[n−2]F[n-1],F[n-2]F[n−1],F[n−2],因此我们只需要记录最近的两个斐波那契数列即可因此我们定义f(n)=[Fn,Fn+1]f(n)=[F_{n},F_{n+1}]f(n)=[Fn,
*DDL_GzmBlog
·
2023-10-09 02:20
#
基础数论
数论
c++
AcWing
1303. 斐波那契前 n 项和 (矩阵乘法)
题意大家都知道Fibonacci数列吧,$f_1=1,f_2=1,f_3=2,f_4=3,…,f_n=f_{n−1}+f_{n−2}$。现在问题很简单,输入$n$和$m$,求${f_n}$的前$n$项和$S_n\bmodm$。输入格式共一行,包含两个整数$n$和$m$。输出格式输出前$n$项和$S_n\bmodm$的值。数据范围$1\len\le2000000000$,$1\lem\le10000
Chemin Du Retour
·
2023-10-09 02:20
acwing
提高课题解
斐波那契前 n 项和--
acwing
(矩阵法求斐波那契数列&&矩阵快速幂)
大家都知道Fibonacci数列吧,f1=1,f2=1,f3=2,f4=3,…,fn=fn−1+fn−2。现在问题很简单,输入n和m,求fn的前n项和Snmodm。输入格式:共一行,包含两个整数n和m。输出格式:输出前n项和Snmodm的值。数据范围:1≤n≤2000000000,1≤m≤1000000010题意:求斐波那契数列前n项和题解:这里,n的范围太大了,直接遍历肯定超时,这里用了一个矩阵
Are_you_ready
·
2023-10-09 02:49
数论
佳佳的斐波那契--
acwing
(矩阵乘法快速幂)
用T(n)=(F1+2F2+3F3+…+nFn)modm表示Fibonacci数列前n项变形后的和modm的值。现在佳佳告诉你了一个n和m,请求出T(n)的值。输入格式:共一行,包含两个整数n和m。输出格式:共一行,输出T(n)的值。数据范围:1≤n,m≤231−1输入样例:55输出样例:1样例解释T(5)=(1+2×1+3×2+4×3+5×5)mod5=1题目:https://www.acwin
Are_you_ready
·
2023-10-09 02:49
数论
斐波那契前 n 项和 - 矩阵乘法快速幂
1303.斐波那契前n项和-
AcWing
题库构造矩阵A使010A=[111]001然后对这个式子进行快速幂,挺神奇的#include#defineIOSios::sync_with_stdio(0);cin.tie
泠楠子
·
2023-10-09 02:47
数论
模板
矩阵
算法
线性代数
算法基础课-第四章 数学知识
试除法求约数1.2.2约数个数1.2.3约数之和1.2.4最大公约数☆1.2.5欧拉函数1.3快速幂二、组合计数三、高斯消元四、简单博弈论参考:一、数论1.1质数1.1.1质数的判定试除法判定质数模板题
AcWing
866
李加号pluuuus
·
2023-10-09 01:29
算法
Acwing
.788 逆序对的数量
题目给定一个长度为n的整数数列,请你计算数列中的逆序对的数量。逆序对的定义如下:对于数列的第i个和第j个元素,如果满iali],则其为一个逆序对;否则不是.输入格式第一行包含整数n,表示数列的长度。第二行包含n个整数,表示整个数列。输出格式输出一个整数,表示逆序对的个数。数据范围1≤n≤100000输入样例:6234561输出样例:5题解#includeusingnamespacestd;type
iAkuya
·
2023-10-09 01:47
java算法实录
算法
数据结构
【每日一题】
AcWing
5271. 易变数 | 思维 | 中等
题目内容原题链接给定一个二进制表示的数sss。定义函数f(x)f(x)f(x)为xxx的二进制位中为111的数量。每次操作可以使得x→f(x)x\rightarrowf(x)x→f(x),问在最少操作次数下,恰好kkk次操作后为111的数有多少,答案对109+710^9+7109+7取模数据范围1≤susingnamespacestd;constintMOD=1e9+7;intqp(inta,in
solego
·
2023-10-08 21:18
算法竞赛
算法
leetcode 第 301场周赛
总结比较简单的周赛一般就不会写题解了,比如上周的周赛和这周的
acwing
周赛,这周的leetcode周赛思维难度还是挺大的,基本没有送分题。
昂昂累世士
·
2023-10-08 21:41
其它
动态规划
组合数
寒假CS每日打卡 Feb.7th
算法部分1.
Acwing
入门组每日一题题目:陶陶摘苹果陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。
Raymond_YP
·
2023-10-08 21:35
2021寒假每日打卡
算法
C++
寒假学习
LeetCode
Acwing
上一页
20
21
22
23
24
25
26
27
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他