
基础数学
Forward in time
永不停止前进
展开
-
快速排序
#include<iostream>#include<cstdio>#include<ctime>#include<cstdlib>using namespace std;//快速排序思想,,,,以每组最左边的第一个数作为基数//这里只把它想成有奇数个数,,这样字就好理解些,并且比较时是从第一个开始的,不是作为基数之后就不比了int a...翻译 2019-02-23 11:05:25 · 96 阅读 · 0 评论 -
组合数(思维题+__int128)
题意很简单吧;就是算C(n,k)和1e18的大小;如果你手写一下就可以把C(n,m)写成:可以很明显发现分子最左边的n-k可定小于分母最后边的n-k+1;所以他们能相同约分;然后就有一个new知识点了!!__int128这个是只能在计算时使用的数据类型,不能在输入输出的时候使用;所以这道题我就可以这样想:如果我从[1,k]去枚举,那么肯定就是这样枚举滴:如果我连乘算出来之后&...原创 2019-10-01 18:48:40 · 316 阅读 · 1 评论 -
eon(数学运算题)
这个题一看1e6,int,ll肯定爆,所以用字符串,因为排序后是最大的数字,所以肯定向高位借位够了,举个栗子:所以sort一下char就行了;AC代码:#include<bits/stdc++.h>using namespace std;typedef long long ll;bool cmp(char a,char b){ return a>b;}int...原创 2019-09-21 20:06:11 · 184 阅读 · 0 评论 -
B. Vibranium Gift(基础几何数学)
这道题题意很简单就是问,知道V了,问对任意表面积最小的物体使得它所形成的体积==V,求最小面积为多少?其实这道题我一猜就是圆,所以AC了;#include<bits/stdc++.h>using namespace std;int main(){ int t,g=1; scanf("%d",&t); while(t--){ double r...原创 2019-09-20 17:26:52 · 149 阅读 · 0 评论 -
C. Book Reading(周期规律+等差数列)
这道题就是求[1,n]内,能被m整除的数的个位数的和为多少;题意很简单吧,嘻嘻;但是一看1e16;枚举早爆了;所以我猜了一下应该是什么规律;后面我发现这个问题如果一个数x能被m整除;那么x的值可以为m,2m,3m,4m,…;我发现是等差数列;也就是x=num*m(num>=1的整数);然后我写了一下样例;发现这个问题:我把个位数保留下来;可以发现这个东西是以10为周期的;之后我...原创 2019-09-02 22:01:38 · 452 阅读 · 0 评论 -
【XR-3】等差数列(基础数学)
直接带等差数列公式:#include<bits/stdc++.h>using namespace std;typedef long long ll;ll gcd(ll a,ll b){ return b?gcd(b,a%b):a;}ll QP(ll x, ll n, ll Mod){ ll res=1; while(n){ if(n&1){ re...原创 2019-08-27 10:31:01 · 296 阅读 · 0 评论 -
A. You Are Given Two Binary Strings...(二进制思维题)
题意很简单就是给你x和y转成二进制:f(x)和g(y)然后求最小的k使得;ans=f(x)+g(y)*2^k的二进制结果反转后最小值;很明显直接reverse然后找第二个对应的第一个串的第一个1;为什么呢?理由:因为2^k二进制表示为:然后根据二进制运算:这个相当于就是十进制里面的乘10;因为比如(11)2乘上2^k:然后拿第一个案例举例:1010翻转0101那么我需要把最高...原创 2019-08-17 22:37:38 · 627 阅读 · 0 评论 -
Seq(规律+等差数列)
刚开始我还没什么头绪,估计一看就是规律吧,结果打了一下表:然后发现这样写:然后很明显的等差数列就出来了,最后通式一带判断一下余数和计算行数就AC了;#include<iostream>#include<cstdio>#include<cctype>#include<string>#include<cstring>#i...原创 2019-08-17 21:45:19 · 552 阅读 · 0 评论 -
Polynomial(百度之星初赛A题+高数洛必达)
这个题很简单高数的洛必达法则+只与最高次幂有关,主要就是在x的幂相等的时候,用洛必达约分然后gcd就行了;#include<iostream>#include<cstdio>#include<cctype>#include<string>#include<cstring>#include<cmath>#inc...原创 2019-08-17 21:37:16 · 174 阅读 · 0 评论 -
B. Mislove Has Lost an Array(思维+等比数列)
题意:一个array大小n,然后不同个数区间[L,R];;让你求在不同个数区间里面,使得array和最大和最小分别是多少,前提是满足两个条件:1.这个array里面不同数字的个数必须在[L,R]区间里;2.array里面的元素是1或者是一个偶数,并且满足这个偶数/2的值在array里面;其实这个题我感觉没什么思路,但是仔细想了一下发现如果Min,不就是最好的就是最多是1吗?然后我又想了一...原创 2019-08-21 18:43:43 · 237 阅读 · 0 评论 -
L - Array Splitting(枚举+数学+思维+贪心)
这道题题意:就给一个递增的数组,然后把它分为k份,每份的不能有交集(就是不能重叠),计算出每份的最大值-最小值,之后把每份的计算的值求和,问在分成k份之后这个和最小为多少;这个题可以这样理解:因为要分为K部分,并且每部分连续;所以我可以假设分为这K部分:那么它们最终的值为:变形:可得:所以答案显而易见了:因为a[n]-a[1]是固定的,所以只需要把后面的变的尽可能大就OK...原创 2019-08-11 11:43:42 · 192 阅读 · 0 评论 -
A - Tricky Sum(等比等差+容斥思想)
题意很简单,就是把[1,n]中能用2的幂的形式表示的变成负数,然后再相加;很显然1.1–n等差数列求和;2.用等比数列求出公比为2,首项为1的和;一看1e9次方,枚举爆表,所以巧妙枚举,利pow(2,i)<=n来找出其中的值;这里用快速幂加速:#include<bits/stdc++.h>using namespace std;typedef long long...原创 2019-08-10 14:41:39 · 197 阅读 · 0 评论 -
支援城市(数学展开式求和)
这题枚举肯定爆;所以展开就知道了:知道了这个 就知道怎么枚举了;直接跑一遍就AC;#include<bits/stdc++.h>using namespace std;typedef long long ll;const int maxn=1e5+50;int main(){ ll n; scanf("%lld",&n); ll W[maxn],sum1...原创 2019-08-10 12:59:29 · 287 阅读 · 0 评论 -
R - Yet Another Crosses Problem(有难度的思维题)
这道题,题的意思就是去找需要刷的数目最小并且能使得这点所对应的行和列均为*;通过理解,不难发现:最小不就是行对应枚举列是行和列和(我这里是 . 的个数的和)最小吗?(有了这个想法之后就好办了);所以我可以用两个一维数组存下每行对应的个数,没列对应的个数;然后枚举矩阵里面的每个点就可以算出来最小值了;注意这里需要一点思维:就是我需要先把枚举到的点给-去,也就是n+m-2因为中间不能重叠(...原创 2019-08-06 13:22:54 · 298 阅读 · 0 评论 -
N - Sport Mafia(数学)
这道题我一开始就想到了是列公式;为什么呢?我可以这样想:因为如果要放,那么他放的个数必定是等差数列,如果要吃那么必定是一次操作吃一个;所以我可以领放了x次,吃了y次;那么就有这个关系:所以带公式就AC了;#include<bits/stdc++.h>using namespace std;typedef long long ll;int main(){ ll ...原创 2019-08-06 12:48:47 · 229 阅读 · 0 评论 -
E - Leading and Trailing(数学)
这道题的精度把我坑惨了,结果我发现我在printf的时候没有加03,题目明明就说n^k 至少6位,结果我想了 2^1不就是要补0吗,唉,我太菜了!! 但是这道题我学到了 如何利用对数解决大数的前导问题。首先应该知道什么是科学表示,虽然小学生都知道但是还是复习一下也就是每个数都可以有a10^b表示出来,a代表前面的1.234567,b就是6;知道了这个然后怎么去找a呢?找到了不就是直接(i...原创 2019-07-21 20:03:35 · 352 阅读 · 0 评论