数学
清汤芥末面
这个作者很懒,什么都没留下…
展开
-
891. Nim游戏
添加链接描述 结论:a0^a1^....^an==0 先手必败 否则先手必胜 证明如下: 1.0^0^0^....^0=0,最终态为0。 a0^a1^....^an==x(不为0)则从x一定能转移到0,假设让ai变成ai^x,ai^x一定小于ai,则a0^a1^..^ai^x..^an==0。 2.a0^a1^..^ai..^an==0则无论怎么取都转化为一个不为0的数。反证法,假设3.a0^a1^..^ai`..^an==0,a0^a1^..^ai..^an和a0^a1^..^ai`..^an进行异或操作原创 2022-03-28 17:28:10 · 3986 阅读 · 0 评论 -
890. 能被整除的数
添加链接描述 通过位运算来枚举。要从1开始,从0开始意味着什么都不选,是错误的。 #include<bits/stdc++.h> #define ll long long using namespace std; const int maxn=3e4+5,INF=0x3f,mod=1e9+7; int p[20]; int main() { ll n,m; cin>>n>>m; for(int i=0;i<m;i++) cin原创 2022-03-28 15:13:19 · 370 阅读 · 0 评论 -
343. 整数拆分
给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k >= 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 贪心可以做,我们知道分成的数越接近乘起来就越大,数据量不大就循环分成的个数。 class Solution { public: int integerBreak(int n) { long long sum=0; for(int i=2;i<=n;i++) { if(n%i==0)原创 2022-02-21 19:43:41 · 420 阅读 · 0 评论