数学思维
真正的天选之人
谁才是真正的天选之人!!!!
展开
-
fzu 2191
#include#include#include#include#includeusing namespace std;int main(){ long long a, b; while(~scanf("%I64d%I64d",&a,&b)) { long long i=2; long long s原创 2017-03-21 09:07:49 · 263 阅读 · 0 评论 -
bzoj 1013
n+1个等式,两两相减消掉有平方的未知数得2(a1-b1)x1+2(a2-b2)x2+...+2(an-bn)xn=(a1^2+a2^2+...+an^2-b1^2-b2^2-...-b3^2)现在为一次的方程然后高斯消元解方程组。#include<bits/stdc++.h>using namespace std;#define N 1000005#define...原创 2018-10-23 20:53:21 · 194 阅读 · 0 评论 -
hdu 1465 二项式反演推公式
#include<stdio.h>#include<string.h>#include<queue>#include<bits/stdc++.h>using namespace std;#define LL long long#define inf 0x3f3f3f3fLL fav[55];/*g[n]=(0~n)(-1)^(n-i...原创 2018-09-10 19:35:06 · 243 阅读 · 0 评论 -
ZOJ 月赛 C. Travel along the Line
枚举n个数里取1的个数,那么取-1和0的个数就能算出,然后将这些情况加和就可以;当时太菜想的有点瑕疵...#include<bits/stdc++.h>using namespace std;#define LL long longconst int MOD=1000000007;#define N 2000010int fac[N],Finv[N],inv[N],p[N],...原创 2018-03-11 16:34:11 · 243 阅读 · 0 评论 -
数论学习
#includeconst int N = 100000 + 5;bool prime[N];//prime[i]表示i是不是质数 int p[N], tot;//p[N]用来存质数 void init(){ for(int i = 2; i for(int i = 2; i if(prime[i]) p[tot ++] = i;//把质数原创 2017-11-26 14:41:38 · 734 阅读 · 0 评论 -
尺取法 poj 3061
题意:给定一个序列,找出最短的子序列长度,使得其和大于或等于m。如果序列和小于m右端点向前推进,r++,如果大于m了说明太大了那么要进行//#include#include#include#define ll long longusing namespace std;ll a[200000];int main(){ int t; scanf("%d",&t);原创 2017-11-19 18:26:12 · 203 阅读 · 0 评论 -
fzu 2195
这题是并查集运用并查集的原理求到一条路的上一端;我们需要求的是最小花费,那么就直接用总花费减去最长路的话费就可以了(好好想想!!)#include#include#includeusing namespace std;int f[100001];int cost[100001];int get(int i){ int sum=0; while(i>1)原创 2017-03-21 09:20:31 · 194 阅读 · 0 评论 -
错排 hrbust 1191
错排公式这是n个里面全那错的公式这题还有可能n个里面拿错m个所以先算出n个里面拿对的可能是c(n,n-m);即最后结果为c(n,n-m)*D(m);#include#include#include#include#define ll long longusing namespace std;ll c(ll n,ll m){ ll ans=1; fo原创 2017-05-04 15:26:59 · 236 阅读 · 0 评论 -
hrbust 2309约瑟夫环
约瑟夫环递推公式n个人中每次第m个选出f[i]=(f[i-1]+m)%i;#include#include#include#include#define ll long longusing namespace std;int f[1000005];int main(){ int t; scanf("%d",&t); while(t--)原创 2017-05-04 16:53:35 · 273 阅读 · 0 评论 -
zoj 3960 What Kind of Friends Are You?
这题比赛的时候坑了我9发都不过当时用的string 但是比赛完了之后原代码只是把string换成char就过了莫名其妙!!!!这题用到了二进制,暴力一下更快以下是我代码#include #include #include#include#include#includeusing namespace std;int t;int main(){ scanf("%d原创 2017-04-22 20:40:47 · 814 阅读 · 0 评论 -
hdu 5428
二分 加一下小判断#include#include#include#include#include#define ll long longusing namespace std;int a[2000000];int a1[2000000];int n;int j(int t){ memcpy(a1,a,sizeof(a)); for(int i=1;i<=n;转载 2017-04-05 12:37:37 · 183 阅读 · 0 评论 -
hrbust 2143
这题居然用dp还是水题太少#include#include#includeusing namespace std;#define ll long longll dp[20][20];ll sum[20];int main(){ for(int i=1; i<=19; i++) { for(int j=1; j<=i; j++)转载 2017-03-21 14:15:42 · 448 阅读 · 0 评论 -
fzu 2193
#include#include#include#include#includeusing namespace std;#define ll long longchar a[100000];int gcd(int a,int b){ if(b==0) return a; else return gcd(b,a%b);}原创 2017-03-21 09:10:14 · 309 阅读 · 0 评论 -
二项式反演 uva 7040
由二项式反演公式可知题意:给n盆花涂色,从m种颜色中选取k种颜色涂,保证正好用上k种颜色,你必须用上这k种颜色去涂满n个相邻的花,并且要求相邻花的颜色不同,求方案数。只用k种花染色,考虑不全用上的方案数;第一盆为k种颜色,之后的所有盆都为k-1种;则总方案数为k*(k-1)^(n-1);设用i种颜色两两相邻不一样颜色的方案数为g(i)则有k*(k-1)^(n-1)=设f...原创 2018-12-11 12:15:49 · 399 阅读 · 1 评论