数论,大数,游戏
Wa_Automata
这个作者很懒,什么都没留下…
展开
-
2023河南萌新联赛第(三)场:郑州大学 F - 数学题
# [2023河南萌新联赛第(三)场:郑州大学 F - 数学题](https://ac.nowcoder.com/acm/contest/62332/F)#### 题目描述给出n,x,请你输出这个式子的值对998244353取余$sum=\prod_{i = 0}^n(1+x^{(2^i)})$原创 2023-07-29 08:27:37 · 133 阅读 · 0 评论 -
第十三届蓝桥杯大赛软件类国赛 C/C++ 大学B组 试题 I:齿轮
如果在这里发现 $a$ 数组里有 $2$ 个数相除等于 $x$,就输出 $YES$,否则就输出 $NO$。```cppfor(i=1;i原创 2023-03-04 11:06:41 · 135 阅读 · 0 评论 -
第十三届蓝桥杯大赛软件类国赛 C/C++ 大学B组 试题 G: 故障
# [试题 G: 故障](https://www.dotcpp.com/oj/problem2697.html)## 贝叶斯公式![在这里插入图片描述](https://img-blog.csdnimg.cn/601a535b42ca47dd8d5c574ba7a70a2b.png)#### 条件概率的运用,即发生A事件的条件下,B事件发生的概率。原创 2022-10-19 16:04:25 · 339 阅读 · 0 评论 -
Problem F. 集合之和
Problem F. 集合之和- 思维,规律,构造。- 构造简单数集 $A = {0,1,2,\dots,k}, |A| = k$,则 $A + A = {0,1,2,\dots,2k},|A+A| = 2k + 1$。- 通过上述构造,显然当 $n$ 为奇数时一定有解,我们只需要构造满足如上规则的数集即可。- 接下来讨论 $n$ 为偶数的情况:- $|A| = 2, |A+A| = 3$,当 $n = 2$ 时无解;- $|A| =3,5\le |A+A|\le 6$,当 $n = 4$ 时原创 2022-10-10 12:43:18 · 503 阅读 · 0 评论 -
Problem G. Mocha 上大班啦
Problem G. Mocha 上大班啦- 思维题。- 概率期望套皮,其实无需处理。- 只要一列中出现过 $0$,由于进行的是“与”位运算,操作多少次都不会影响任何一个 $01$ 串第 $i$ 位的值,结果一定是 $0$。- 故直接计算初始 $01$ 串与操作后的 $1$ 的个数即为答案。原创 2022-10-10 12:53:20 · 474 阅读 · 0 评论 -
2022河南萌新联赛第(七)场:南阳理工学院 I - 计算几何
思路:考虑用均匀撒点的方式,可以先扩大横纵坐标,之后统计在图形内部的格子数量,最后根据缩放比例还原面。给一个不规则图形,粗略计算其面积。提示1:题目要求的精度很低。提示2:数据范围很小。原创 2022-08-22 13:33:00 · 74 阅读 · 0 评论 -
2022河南萌新联赛第(七)场:南阳理工学院 L - O___o___
同时要注意一种特殊情况,那就是两圆相同的时候是重合的,因此需要特判一下,如果不重合,那么就有一个相同的切 点,输出。对于结论可以直接画图分析得出结果;设两圆相切由勾股定理可得出。原创 2022-08-22 13:22:00 · 98 阅读 · 0 评论 -
2022河南萌新联赛第(七)场:南阳理工学院 C - 机智的我
思路:去除挡板后,样本空间变小了,且我们只有样本空间中有奖部分是不变的。是 是去除挡板后随机选择一个挡板获奖的概。提示:去除无奖挡板后,其样本空间发生了变化。是最初随机选择一个挡板的获奖概率,是 ,通过计算我们可以得知,只要。率,最终更改挡板后获奖的概率是。,那么始终更改挡板最优。原创 2022-08-22 12:46:20 · 101 阅读 · 0 评论 -
2022河南萌新联赛第(六)场:郑州大学 F - 取石子 ,但是作弊
众所周知,后手必胜的条件是所有数字异或起来等于 ,这个条件不容易达到,所以对先手比较有利。都较小,所以可以暴力地枚举移动多少个与移动到哪一堆里,判断移动后异或和是否可以为 即可。本题允许从第一堆里移动若干个石子到任意一堆里,...原创 2022-08-15 12:20:22 · 142 阅读 · 0 评论 -
2022河南萌新联赛第(五)场:信息工程大学 K - 矩阵生成
首先开一组循环输入。然后将第一行中间的数赋值为1,定义一个x,y表示当前位置,把x赋值为1,y赋值为(n+1)/2.其次在开一组循环,根据x,y的值(即K-1的坐标)情况判断怎么填写数字,在填写数字完毕后将x,y的值赋为当前坐标。最后当循环数到达n*n后结束并输出。...原创 2022-08-08 13:47:07 · 105 阅读 · 0 评论 -
2022河南萌新联赛第(五)场:信息工程大学 F - 分割草坪
的方案显然是最优的,推导一下公式就可以得出答案。之后可以发现,所有的三角形都有一个顶点为。的花费,找到花费最小的值就可以了。,然后我们就将要求的值分为。原创 2022-08-08 13:29:14 · 69 阅读 · 0 评论 -
2022河南萌新联赛第(五)场:信息工程大学 C - 丢手绢
就可以了,中间记得取模。原创 2022-08-08 13:25:11 · 99 阅读 · 0 评论 -
2022河南萌新联赛第(三)场:河南大学 L - 合成游戏
代码】2022河南萌新联赛第(三)场河南大学L-合成游戏。原创 2022-07-25 19:19:09 · 833 阅读 · 0 评论 -
2022河南萌新联赛第(三)场:河南大学 J - 神奇数字
解法如果三个数相等,对任何数取余结果都相同,输出。如果不想等,想到任何数都可以写成。,y取余结果相同,如果是。然后输出所有的质因子即可。原创 2022-07-25 18:52:13 · 115 阅读 · 0 评论 -
2022河南萌新联赛第(一)场:河南工业大学 A - Alice and Bob
我们可以对 nnn 进行质因数分解,那么其实就是把 nnn 分成了一些石子,对于每个素因数 ppp 都看作一堆石子,那么每次操作转化为从某堆石子拿走一些石子,那么就转化为 Anti−NimAnti−NimAnti−Nim 博弈。根据 Anti−NimAnti−NimAnti−Nim 游戏结论,当且仅当所有堆石子数等于 111 并且所有堆石子数量异或和为 000 (有偶数堆)或者存在一堆石子数大于 111 并且所有堆石子数量异或和大于 000 先手必胜;反之必败。所以先分解质因数,然后使用 A原创 2022-07-11 16:42:03 · 389 阅读 · 2 评论 -
HDU - 6225 Little Boxes(__int128的使用)
# [HDU - 6225 Little Boxes(__int128的使用)](https://acm.hdu.edu.cn/showproblem.php?pid=6225)**Problem Description**Little boxes on the hillside.Little boxes made of ticky-tacky.Little boxes.Little boxes.Little boxes all the same.There are a green boxe原创 2022-06-24 15:24:49 · 113 阅读 · 0 评论 -
HDU - 1495 非常可乐(BFS,数学)
HDU - 1495 非常可乐(BFS,数学)巨佬的数学解法#include<iostream>using namespace std;int gcd(int a,int b){ return b==0?a:gcd(b,a%b);}int main(){ int a,b,c; while(cin>>a>>b>>c&&(a&&b&&c)) { a/=gcd(b,c); if(a&原创 2022-03-11 10:50:01 · 352 阅读 · 0 评论 -
POJ - 2505 A multiplication game(博弈)
题意:给一个正整数n(1<n<4294967295),p=1,S和O游戏,两人轮流对p乘以2−9之间的一个数,首先使p>=n的人获胜,每次游戏都从S开始题意:给一个正整数n(1 < n < 4294967295),p=1,S和O游戏,两人轮流对p乘以2-9之间的一个数,首先使p>=n的人获胜,每次游戏都从S开始题意:给一个正整数n(1<n<4294967295),p=1,S和O游戏,两人轮流对p乘以2−9之间的一个数,首先使p>=n的人获胜,每次游戏都从原创 2021-09-02 23:17:28 · 110 阅读 · 0 评论 -
ZZUILIOJ-2780 小A的宝藏
题目描述小A和小B历经千辛万苦,终于在一个洞穴中找到了宝藏。在洞穴深处,他们发现了一颗价值连城的宝石,他们决定做一个游戏以决定宝石属于谁。游戏规则如下:每人在自己的回合必须选择其中一个操作:1.拿走一块或者两块银子;2.拿走一块金子。无法继续进行操作的人被认为失败(即银子和金子都已经拿完)。谁将得到宝石呢?输入多样例测试第一行输入T(T<=100,000),代表样例数;剩余T行,每行输入n,m(n<1,000,000,000,m<1,000,000,000) 代表银原创 2021-03-15 17:06:17 · 517 阅读 · 3 评论 -
POJ - 2484 A Funny Game(博弈)
POJ - 2484 A Funny Game#include<iostream>#include<cstdio>using namespace std;int main(){ int n; while(scanf("%d",&n)&&n) { if(n<=2) puts("Alice"); else puts("Bob"); } return 0;}原创 2021-09-02 23:11:00 · 82 阅读 · 0 评论 -
POJ - 2348 Euclid‘s Game(博弈)
POJ - 2348 Euclid’s Game题目大意Stan wins和Stan wins进行比赛,给定两个数,每次将两个数中较大的那个减去较小的那个数的整数倍,减去后依然为正整数直到两个数有一个数为0,先到0的胜利。Stan wins先手思路第一次遇见可以选择的人将获胜即为当a≥2∗b的时候,可以选择转移到(a%b,b)或者( a % b + b , b )``(a%b+b,b)从而产生不同的局势,而这个人足够聪明所以他可以判断出必胜态所以我们需要找到面临情况这个的人当a>=2原创 2021-08-30 12:38:27 · 186 阅读 · 0 评论 -
POJ - 3641 Pseudoprime numbers(快速幂+同余)
POJ - 3641 Pseudoprime numbers#include<stdio.h>typedef long long LL;bool isprime(int n){ for(int i=2;i*i<=n;i++) if(n%i==0)return false; return true;}int quickpow(int a,int p,int MOD){ int res=1; for(;p;p>>=1) { if(p&1) re原创 2022-01-15 15:18:59 · 101 阅读 · 0 评论 -
ZZULIOJ 2853: 小A的游戏昵称(容斥定理)
2853: 小A的游戏昵称加上3,5,7的所有倍数和减去15,21,35的所有倍数和加上105的倍数和。如下图。#include<stdio.h>typedef long long LL;LL n; LL get(int x){return 1LL*(1+n/x)*(n/x)*x/2;}int main(){ scanf("%lld",&n); LL sum=0; sum+=get(3)+get(5)+get(7)-get(15)-get(21)-get(35原创 2022-01-07 23:43:43 · 2699 阅读 · 0 评论 -
ZZULIOJ 2809: OH哥的倍数问题(Hard Version)(容斥定理)
2809: OH哥的倍数问题(Hard Version)#include<stdio.h>typedef long long LL;int n;LL get(int x){return 1LL*(1+n/x)*(n/x)*x/2;}int gcd(int a,int b){return b?gcd(b,a%b):a;}int lcm(int a,int b,int c,int d,int e){ int x=a*b/gcd(a,b); x=x*c/gcd(x,c); x=x原创 2022-01-07 23:13:43 · 425 阅读 · 0 评论 -
ZZULIOJ 2807: OH哥的倍数问题(Easy Version)(容斥定理)
2807: OH哥的倍数问题(Easy Version)#include<stdio.h>typedef long long LL;LL n;LL get(int x){return (1+n/x)*(n/x)*x/2;}LL gcd(int a,int b){return b?gcd(b,a%b):a;}LL lcm(int a,int b){return a/gcd(a,b)*b;}int main(){ int T;scanf("%d",&T); while(原创 2022-01-07 23:12:20 · 437 阅读 · 0 评论 -
ZZULIOJ 2853: 小A的游戏昵称(容斥定理)
2853: 小A的游戏昵称简单的容斥定理考察加上3,5,7的倍数,减去,15,21,35的倍数,再加上105的倍数,就可以得到结果#include<iostream>using namespace std;typedef long long LL;const int MOD = 998244353;int main(){ LL n;cin>>n; LL sum=0; sum+=(n/3+1)*(n/3)/2*3;sum%=MOD; sum原创 2021-11-23 18:09:18 · 167 阅读 · 0 评论 -
POJ - 3696 The Luckiest number(欧拉定理)
POJ - 3696 The Luckiest number#include<cstdio>#include<algorithm>using namespace std;typedef long long LL;int gcd(int a,int b){return b?gcd(b,a%b):a;}LL mul(LL a,LL b,LL p){ LL res=0,t=a%p; for(;b;b>>=1) { if(b&1) re原创 2021-11-08 19:40:00 · 99 阅读 · 0 评论 -
POJ - 3090 Visible Lattice Points(欧拉函数)
POJ - 3090 Visible Lattice Points分析这道题目,我们发现除了(1,0),(0,1),(1,1)三个钉子,其他钉子被看到,只有满足了分析这道题目,我们发现除了(1,0),(0,1),(1,1)三个钉子,其他钉子被看到,只有满足了分析这道题目,我们发现除了(1,0),(0,1),(1,1)三个钉子,其他钉子被看到,只有满足了1≤x,y≤N,x≠y1≤x,y≤N,x≠y而且gcd(x,y)=11≤x,y≤N,x≠y1≤x,y≤N,x≠y 而且gcd(x,y)=11≤x,y≤N原创 2021-11-06 13:58:01 · 78 阅读 · 0 评论 -
ZZULIOJ 2826: 使用技能
ZZULIOJ 2826: 使用技能#include<cstdio>typedef long long LL;const int N = 100010, MOD = 1e9+7;int n,m;LL fact[N],infact[N];int ksm(LL a,int b){ LL res=1; for(;b;b>>=1) { if(b&1) res=res*a%MOD; a=a*a%MOD; } return res;} int C(i原创 2021-11-06 12:41:18 · 165 阅读 · 0 评论 -
ZZULIOJ 2698: 太阳轰炸
击中碎片的概率 p=(R1+r)2R22p = \frac {(R1+r)^2} {R2^2}p=R22(R1+r)2未击中的概率为 q=R22−(R1+r)2R22q = \frac {R2^2-(R1+r)^2} {R2^2}q=R22R22−(R1+r)2摧毁碎片的概率x=C(n,k)∗pk∗qn−k+C(n,k+1)∗pk+1∗qn−k−1+…+C(n,n)∗pn∗q0x = C(n,k) * p^k * q^{n-k} + C(n,k+1) * p{k+1} * q^{n-k-1} +原创 2021-10-17 23:03:43 · 329 阅读 · 2 评论 -
POJ - 2325 Persistent Numbers(高精度除法,Java)
POJ - 2325 Persistent Numbers题意:给定一个数N,求一个数M,要求:将M的各个位的数相乘得到N,M最小。思路:用到高精度除法,将给定的数从9开始试除,接着试除8,7,6,5,4,3,2。0<=N<=1010000<=N<=10^{1000}0<=N<=101000因为有大数除法,所以Java自带的BigInteger就很方便,直接从9-2循环找答案,用一个字符串res存起来,最后直接输出字符串即可,import java.math.原创 2021-09-16 21:59:53 · 95 阅读 · 0 评论 -
POJ - 1082 Calendar Game(博弈,记忆化搜索)
POJ - 1082,POJ链接HDU - 1079,HDU链接题意:A 和 E 玩游戏,在 1900 年的 1 月 1 号到 2001 年的 11 月 4 号之间随机选一个日期,两人轮流增加日期, A 先手。规定只能往此日期的下一天移动或者下个月的这一天移动(如果下个月没有这一天,则不能移动,例如 1 月 30 号,只能移动到 1 月 31 号,因为 2 月没有 30 号)。最终谁先移动到 2001 年的 11 月 4 号,谁就获胜。两个人都采用最优策略,问A是否能够获胜对于这道题目,最关键的地方原创 2021-09-16 11:41:27 · 85 阅读 · 0 评论 -
POJ - 1061 青蛙的约会(拓展欧几里得)
POJ - 1061 青蛙的约会题解请看这里#include<cstdio>#define LL long longLL x,y,m,n,l,a,b,c,x0,y0,g,tmp;void exgcd(LL a,LL b){ if(!b){x0=1;g=a;return;}//顺便求gcd exgcd(b,a%b); tmp=x0;x0=y0;y0=tmp-a/b*y0;}int main(){ scanf("%lld%lld%lld%lld%lld",&x,&原创 2021-09-15 23:33:47 · 58 阅读 · 0 评论 -
POJ - 2262 Goldbach’s Conjecture(埃氏筛)
POJ 2262 Goldbach’s Conjecture先用埃氏筛法,筛出来100W之内的素数,然后直接就是哥德巴赫猜想,找到这个偶数的两个质数之和#include<cstdio>#include<cmath>#include<cstring>const int N = 1000010;bool isprime[N];int prime[N];void get_primes(){ memset(isprime,1,sizeof isprime原创 2021-09-15 19:04:12 · 78 阅读 · 0 评论 -
POJ - 2389 Bull Math(高精度乘法,Java)
POJ - 2389 Bull Mathimport java.math.BigInteger;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); BigInteger a=cin.nextBigInteger(); BigInteger b=cin.原创 2021-09-14 23:14:58 · 161 阅读 · 0 评论 -
POJ - 1183 反正切函数的应用(数论)
POJ - 1183 反正切函数的应用由题目可知:由题目可知:由题目可知:(p+q)/(1−pq)=1/a,(p+q)/(1−pq)=1/a,(p+q)/(1−pq)=1/a,其中p=1/b,q=1/c其中p=1/b,q=1/c其中p=1/b,q=1/c即1/a=(b+c)/(bc−1)即1/a=(b+c)/(bc−1)即1/a=(b+c)/(bc−1)即1/a=(b+c)/(bc−1)即1/a=(b+c)/(bc−1)即1/a=(b+c)/(bc−1)由上式可得,c=(ab+1)/(b−a),原创 2021-09-14 18:08:39 · 91 阅读 · 0 评论 -
POJ - 2689 Prime Distance(线性筛法)
POJ - 2689 Prime Distance(线性筛法)1.先把 [1,105][1,10^5][1,105]内所有的素数筛出2.对于任意 d∈[1,105]d∈[1,10^5]d∈[1,105],我们把 [L,R][L,R][L,R]内所有以 ddd 作为最小质因子的合数用 ddd 筛掉对于任意 n∈[L,R]n∈[L,R]n∈[L,R],如果 nnn 是合数,则他必定会被 nnn 的最小质因子 ddd 筛掉该算法是合理的。#include <iostream>#inclu原创 2021-09-14 14:59:10 · 225 阅读 · 0 评论 -
POJ - 3070 Fibonacci(矩阵快速幂)
POJ - 3070 Fibonacci(矩阵快速幂)斐波那契数列第N项斐波那契数列第N项斐波那契数列第N项F0=0,F1=1,Fn=Fn−1+Fn−2F0 = 0, F1 = 1, Fn = Fn − 1 + Fn − 2F0=0,F1=1,Fn=Fn−1+Fn−22<=n<=1,000,000,0002<=n <=1,000,000,0002<=n<=1,000,000,000并且对结果进行10000取模并且对结果进行10000取模并且对结果进行10000取原创 2021-09-14 14:51:53 · 111 阅读 · 0 评论 -
HDU-1230 火星A+B
读入两个不超过25位的火星正整数A和B,计算A+B。需要注意的是:在火星上,整数不是单一进制的,第n位的进制就是第n个素数。例如:地球上的10进制数2,在火星上记为“1,0”,因为火星个位数是2进制的;地球上的10进制数38,在火星上记为“1,1,1,0”,因为火星个位数是2进制的,十位数是3进制的,百位数是5进制的,千位数是7进制的……Input测试输入包含若干测试用例,每个测试用例占一行,包含两个火星正整数A和B,火星整数的相邻两位数用逗号分隔,A和B之间有一个空格间隔。当A或B为0时输入结束,相应原创 2021-01-17 10:00:35 · 119 阅读 · 0 评论 -
POJ - 1001 Exponentiation(高精幂,Java)
POJ - 1001import java.math.BigDecimal;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); while(cin.hasNext()) { BigDecimal a=cin.nextBigDeci原创 2021-09-13 10:57:43 · 80 阅读 · 0 评论