- 博客(6)
- 收藏
- 关注
原创 直线、折线分割平面及平面分割空间问题
直线分割平面问题:1、公式:a[i]=a[i-1]+(i-2),b[i]=b[i-1]+2,f[i]=a[i]+b[i];//a[i]为分割之后的内部,b[i]为分割之后的外部,f为直线分割平面的数量。2、注解:对于第n条直线:内部:每次直线最多于之前的n-1条直线相交产生n-1个交点->n-2个新块外部:每次最多将两个块一分为二折线分割平面问题:1、公式:a[i]=a[i-1]+(i-2),b[i]=b[i-1]+2,f[i]=a[2x]+b[2x]-2x;//a和b同直线,
2022-05-15 21:02:46
816
1
原创 数列错排问题
该同学同时给n个网友每人写了一封信,他竟然把所有的信都装错了信封!注意了,是全部装错哟!现在的问题是:请大家帮可怜的同学计算一下,一共有多少种可能的错误方式呢?公式:f[i]=(i-1)*(f[i-1]+f[i-2])注解:考虑第n个放在第k个位置,那么第k个位置的信有两种选择1、k->n:相当于n-2的信封错排问题。2、k不去n:相当于n-1的信封错排问题。#include <bits/stdc++.h>#define LL long longusing n
2022-05-15 20:19:18
168
原创 求组合数 mod P
求C%p 的值#include <bits/stdc++.h>#define LL long long intusing namespace std;LL q(LL a,LL b,LL p)//快速幂模板{ LL ans=1; while(b) { if(b&1) ans=(ans*a)%p; b=b >> 1; a=(a*a)%p; } ...
2022-04-28 19:48:58
140
原创 快速幂模板
int Quick_pow(int a,int b){ int ans=1,base=a;// ans:结果;base:底数 while(b) { if(b & 1)//等于b%2==1 { ans=ans*base; } base=base*base; b = b >> 1;//等于b/2 } return ans;}int po.
2022-04-28 19:05:55
213
原创 博弈论类型
一、尼姆游戏给定 N 堆物品,第 i 堆物品有 Ai个。两名玩家轮流行动,每次可以任选一堆,取走任意多个物品,可把一堆取光,但不能不取。取走最后一件物品者获胜。两人都采取最优策略,问先手是否必胜。结论:每一堆异或起来,等于0,先手必败,否则先手必胜。#include <cstdio>using namespace std;int n, x, ans;int main(){ scanf("%d", &n); for(int i = 1; i &...
2022-04-27 16:32:10
212
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人