自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

帅帅的博客

这是一个神奇的地方

  • 博客(204)
  • 收藏
  • 关注

原创 简单高精度

L1-6 整除光棍(20 分)这里所谓的“光棍”,并不是指单身汪啦~ 说的是全部由1组成的数字,比如1、11、111、1111等。传说任何一个光棍都能被一个不以5结尾的奇数整除。比如,111111就可以被13整除。 现在,你的程序要读入一个整数x,这个整数一定是奇数并且不以5结尾。然后,经过计算,输出两个数字:第一个数字s,表示x乘以s是一个光棍,第二个数字n是这个光棍的位数。这样的解当然不是唯一...

2018-03-24 19:01:06 208

原创 最长上升子序列模板

// 返回的是最长上升(非严格)子序列的最大长度int lisUpMax(int A[],int n){ int maxn = 1; int Ser[n+10]; //Ser[i] 代表 有i位时的最大元素的最小值 memset(Ser,0x3f,sizeof(Ser)); Ser[1] = A[1]; for (int i = 2;i <= n...

2018-03-20 19:28:06 139

原创 超大容量背包问题

超大背包问题:有n个重量和价值分别为w[i]和v[i]的物品,从这些物品中挑选总重量不超过W的物品,求所有挑选方案中价值总和的最大值。其中,1 ≤ n ≤ 40, 1 ≤ w[i], v[i] ≤ 10^15, 1 ≤ W ≤ 10^15.这个问题给人的第一感觉就是普通的01背包。不过,看完数据范围会发现,这次价值和重量都可以是非常大的数值,相比之下n比较小。使用DP求解背包为题的复杂度是O(nW...

2018-03-15 18:21:07 2802 5

原创 最小生成树-Kruskal模板 - Prim模板(两个版本)

题目链接畅通工程Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 34806    Accepted Submission(s): 15429Problem Description省政府“畅通工程”的目标是使全省任何两个村庄间都可以实现公路交...

2018-03-14 19:15:14 228

原创 想法模拟题——Stack

题目链接 点击打开链接给你两个栈,push操作是压入,pop是弹出栈顶并输出,merge是将后面的栈合并到前面的栈,并且按压入时间排序。 Solution1 前两个仅仅需要模拟就行了,主要是解决merge,倒过来倒过去,很容易超时,可以定义now为A所属的栈,!now为B所属的栈,那么将元素少的栈合并到元素多的栈里,如果merge A B的时候B的元素多,那么我们把A中的倒入B中,now取反即可。...

2018-03-14 12:02:27 117

原创 二进制转换

        做了一个题目,如果把十进制的数据转换成二进制的数据会方便很多,于是我经过研究发现了一个非常方便的方法// getnum()把数字a转换成二进制编码,倒序储存在num1中int num1[100];int a,n1;void getnum(){ n1 = 0; while (a){ int t = a&1; num1[++...

2018-03-12 10:47:50 141

原创 枚举的初识

枚举在某些题目中有着非常重要的作用。其中最方便的就是利用位运算来进行枚举,枚举2的n次方例题:这是一道典型的折半枚举例题,通过先枚举其中一半的数据,在通过数组储存起来。这样就可以进行排序后的二分搜索了。空间换时间 int n2 = n/2; for (int i = 0;i < 1 << n2;i ++){ ll sw = 0,sv = 0; ...

2018-03-11 09:31:57 152

原创 尺取法

尺取法经典例题#include <bits/stc++.h>using namespace std;const int MAX_P = 1e6+7;int P;int a[MAX_P];void solve(){ set<int> all; for (int i = 0;i < P;i ++){ all.insert(a[...

2018-03-07 19:22:31 284

原创 二分的研究

二分查找的标准模板 int l = 0,r = len-1; while (l <= r){ int m = (l+r)>>1; if (judge(m))l = m+1; else r = m-1; } cout << l-1 << endl;此模板,主要判断...

2018-03-04 11:08:19 120

原创 填充函数

填充函数,主要有三种方法。我们看一下其算法的速度#include <bits/stdc++.h>#define INF 0x3f3f3f3fusing namespace std;const int MAXN = (int)1e8;int a[MAXN];int main(){ int tim = clock(); memset(a,0x3f...

2018-03-04 09:12:06 2004

原创 string的加速及使用

令string加速输入的策略#include <bits/stdc++.h>using namespace std;string s;char a[100007];string read(){ scanf("%s",a); string p = ""; for (int len = strlen(a),i = 0;i < len;i ++){...

2018-02-24 10:33:04 389

原创 线段树

//线段树,基础模板#define lson rt<<1#define rson rt<<1|1const int MAXN = (int)1e6+7;int A[MAXN],N;struct Node{ int sum; int add;}tree[MAXN<<2];void PushUp(int rt){tree[rt]....

2018-02-24 10:22:48 94

原创 树状数组

基础模板树状数组,基础模板const int MAXN = (int)1e6+7;int c[MAXN],N;int lowbit(int x){return x&(-x); }void Update(int L,int val){ while (L <= N){ c[L] += val; L += lowbit(L); }...

2018-02-24 10:20:27 108

原创 最短路——链式向前星,迪杰斯特拉算法的典型例题

HDU 1874:题目链接:点击打开链接大神链接:深度理解链式向前星畅通工程续Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 61960    Accepted Submission(s): 23232Problem Description...

2018-02-24 10:11:16 1755

原创 关于全局变量与递归的进一步理解——加深迭代例题

原来这两个的关系一直没有弄得很清楚,经过一个bug的洗礼,我看透了很多题目链接:点击打开链接迷宫问题Time Limit: 1000MS Memory Limit: 65536KTotal Submissions: 28022 Accepted: 16150Description定义一个二维数组: int maze[5][5] = { 0, 1, 0, 0, 0, 0, 1, 0, 1, ...

2018-02-12 22:41:25 1311 1

原创 关于C++的小贴士

#include 这个万能头文件,除了一些POJ,无法运行意外,别的地方基本都可以运行。ios::sync_with_stdio(false); cin.tie(0);代码中可以加上这一句话,来关闭cin,cout和printf,的同步系统,来实现输入输出的加速。具体用法看样例#include using namespace std;int main(){

2018-01-26 20:53:07 133

原创 C++中的文件录入,输出

#include <fstream>#include <iostream>using namespace std;void initial(){ ifstream infile; int n; char filename[50]; cout << "请输入目标文件名:" << e...

2018-01-24 21:32:02 484

原创 递推+大数相加

第二种用数组实现大数加法,简洁:#include #include using namespace std;char table[1001][1000] = {0};void BigNumAdd(){ table[1][0] = 1; table[2][0] = 2; table[3][0] = 4; table[4][0] = 7; for(int i = 5;

2017-12-30 13:24:43 172

原创 矩阵快速幂2

#include #include #include using namespace std;struct m { int a[3][3];};typedef struct m matrix;matrix mod(matrix x){ for (int i = 1;i <= 2;i ++) for (int j = 1;j <= 2;j ++)

2017-12-29 20:38:41 155

原创 正宗矩阵快速幂

#include #include #include using namespace std;typedef long long ll;const int MOD = 10000;struct mat{ ll a[2][2];};mat mat_mul(mat x,mat y){ mat res; memset(res.a,0,sizeof(res.

2017-12-29 20:22:02 92

原创 经典约瑟夫 + 类似约瑟夫

题目的链接:点击打开链接习题8.5——初级Time Limit: 1000MS Memory Limit: 131072KTotal Submissions: 2934 Accepted: 1604Description有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退

2017-12-27 16:23:16 300

原创 字符串的常规操作

字符串的筛选选出数字   #include&lt;stdio.h&gt; int main() { char a[80]; int i = 0; gets(a); while(a[i] != '\0') { if('0'&lt;=a[i]&amp;&amp;a[i]&lt;='9') ...

2017-12-27 09:27:54 365

原创 找单词——记录次数的动归,或者母函数

题目:点击打开链接#include #include #include #include using namespace std;int c1[60],c2[60];int a[30],b[30];int main(){ int n; scanf("%d",&n); while(n--) { for(int i = 1; i <= 26; i

2017-12-24 21:23:11 140

原创 母函数的学习

大神的链接经典无限模板#include#includeusing namespace std;#define M 1000int a[M],b[M];//a[M]中存最终项系数;b[M]中存取中间变量;int main(){ int m,n; int i,j,k; cout<<"请输入最初有几项表达式相乘: "<<endl; while (1

2017-12-22 21:32:11 153

原创 母函数的初识——本拉登 hdu 1085

母函数——本拉登#include #include #include using namespace std;int num[10] ;int c1[100000] , c2[100000] ;int main(){ int i,j,k; while(cin >> num[1] >> num[2] >> num[5] && num[1] || num[2] || num[

2017-12-22 20:54:13 257

原创 一道暴力,用数学方法优化

The sum problem相关的整理讲解1讲解2#include #include #include #include using namespace std;int main(void){ //cout<<fixed<<setprecision(2); int N,m; while(cin>>N>>m && N||m) { for(int n=sqr

2017-12-20 10:30:31 168

原创 多重背包有个疑惑点

悼念512汶川大地震遇难同胞——珍惜现在,感恩生活Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 32929    Accepted Submission(s): 13826Problem Description

2017-12-18 20:49:32 173

原创 01背包与完全背包就差一个顺序

2017-12-17 21:05:58 317

原创 选课时间——深搜

又是一道完全不一样的深搜题目,绝望ing++http://acm.zjnu.edu.cn/CLanguage/showproblem?problem_id=1150http://acm.hdu.edu.cn/showproblem.php?pid=2079#include #include #include using namespace std;int score[10]

2017-12-15 20:29:25 460

原创 逆波兰表达式 —— 递归专题

#include #include #include using namespace std;double exp(){ //读入一个逆波兰表达式,并计算结果 char s[20]; cin >> s; switch (s[0]){ case '+': return exp()+exp(); case '-': return

2017-12-15 16:31:40 323

原创 N 皇后问题 —— 递归求解

#include #include using namespace std;int N;int queenPos[100];//用来储存皇后的位置,最左上角是(0,0)void NQueen(int k);int main(){ cin >> N; NQueen(0); //从第0行开始摆皇后 return 0;}// 让我自己实现一下void N

2017-12-15 16:17:45 301

原创 一种的多重背包背包——Coin Change

http://acm.zjnu.edu.cn/CLanguage/showproblem?problem_id=1140我的暴力算法这是利用深搜的#include int sum,counter;const int a[5] = {1,5,10,25,50};void dfs(int recoder,int sum,int number){ if (number

2017-12-13 22:50:46 233

原创 大数取模

#include #include #include using namespace std;int main(){ char n[1000]; int m; int ans = 0; scanf("%s %d",&n,&m); for (int i = 0;i < strlen(n);i ++){ int num = n[i]

2017-12-12 15:58:59 306

原创 大数计算优化

// 进行大数的相加#include #include #define LEN 101// 将火星由字符型转换为整型,并且放在数组的尾部void convert (char s[],int intS[]){ int i; int m;// 放在字符串中的位置 for (i = 0;i < strlen(s);i ++){ m = strl

2017-12-11 18:55:28 414

原创 扩展欧几里德的收获,和遗憾

扩展欧几里德问题的研究花了 近10个小时,大致上是懂了,总之存在ax+by=gcd(a,b)  ,且只要c/gcd(a,b)能除尽,就一定存在ax+by = c ,           如果想要有限制,请查询裸扩展欧几里得算法 其有一部就是神器了:                                            x = (x%b+b)%b   y = (y%a -a)%a  ...

2017-12-10 20:39:58 199

原创 枚举——三种解

第一种因为只有16种,可以快速枚举 用16个if第二种利用位运算 的 特殊来枚举#include using namespace std;int main(){ int a[6]; int n; cin >> n; while (n --){ for (int i = 1;i <= 5;i ++) cin

2017-12-10 19:00:10 287

原创 埃氏筛法 —— 对素数的使用

#include #include #include using namespace std;int a[1000005];int main(){ a[1] = 1; a[2] = 0; for (int i = 2;i <= 1000000;i ++){ if (a[i] == 0) for (int j = 2;j * i <= 1000000;j ++){ a

2017-12-10 18:03:47 195

原创 快速分解质因子

#include #include using namespace std;int main(){ int n ; while (cin >> n){ for (int i = 2;i*i <= n;i ++){ if (n % i == 0){ while (n % i == 0) n /= i; cout << i << " "; }

2017-12-10 18:02:27 628

原创 扩展欧几里得的 ——要求第一个数为正

#include using namespace std;typedef long long LL;LL e_gcd(LL a,LL b,LL &x,LL &y){ if(b==0) { x=1; y=0; return a; } LL ans=e_gcd(b,a%b,x,y); LL temp=x;

2017-12-10 18:01:07 173

原创 next_permutation函数初识

#include #define MAX_M 10#define MAX_N 10using namespace std;bool used[MAX_N];int perm[MAX_M];// 生成{1,2,3,4,....,n-1}的n!种排列void permutation1(int pos,int n){ if (pos == n){ cout <

2017-12-09 10:53:36 266

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除