知识点
WINDZLY
我不知道最后会得到什么样的结果,但我知道不努力我什么也得不到
展开
-
2480 小b补数组
题目链接https://www.51nod.com/Challenge/Problem.html#!#problemId=2480思路:多重背包的优化是二进制,所以这个题也可以用到二进制,通过加上一个数从而让这个到达区间更远AC代码如下#include <bits/stdc++.h> using namespace std; typedef long long ...原创 2019-03-31 13:44:18 · 224 阅读 · 2 评论 -
51nod 1113 矩阵快速幂
矩阵快速幂板子#include <bits/stdc++.h>typedef long long ll;typedef long long ld;using namespace std;const ll maxn = 1e5 + 7;ll n,m;struct node{ //矩阵 ll matrix[105][105];};//矩阵乘法 no...原创 2018-05-21 18:37:04 · 135 阅读 · 0 评论 -
51nod 1256 乘法逆元
给出2个数M和N(M < N),且M与N互质,找出一个数K满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最小的。Input输入2个数M, N中间用空格分隔(1 <= M < N <= 10^9)Output输出一个数K,满足0 < K < N且K * M % N = 1,如果有多个满足条件的,输出最...原创 2018-05-16 23:20:41 · 185 阅读 · 0 评论 -
递归+记忆化搜索
转自:传送门 边界条件与递归方程是递归函数的两个要素。1)阶乘函数直接打板子:Int fac(int n){If (n==0) return 1;Else return n*fac(n-1);}这里,第一句的if是边界条件,第二句是递归方程。0的阶乘为1,n的阶乘为(n-1)的阶乘再乘n。2)汉诺塔问题本来觉得它是个不可解决的难题,实则不然,区区递归即可解决:Void...转载 2018-05-03 23:30:09 · 351 阅读 · 2 评论 -
51nod1089 最长回文子串 V2(Manacher算法)
拉马车算法:传送(这里有详细解释);1089 最长回文子串 V2(Manacher算法) 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注回文串是指aba、abba、cccbccc、aaaa这种左右对称的字符串。输入一个字符串Str,输出Str里最长回文子串的长度。Input输入Str(Str的长度 <= 100000...原创 2018-05-02 13:39:02 · 260 阅读 · 0 评论 -
容斥原理51nod1284 2 3 5 7的倍数
离散数学//详细解释https://baike.sogou.com/v180264.htm?fromTitle=%E5%AE%B9%E6%96%A5%E5%8E%9F%E7%90%86##s4A∪B∪C∪D=|A|+|B|+|C|+|D| - |A∩B| - |B∩C| - |C∩A|- |A∩D| - |B∩D| - |C∩D| +|A∩...原创 2018-04-20 23:15:34 · 341 阅读 · 0 评论 -
万年历查询
#include <iostream>#include <algorithm>#include <iomanip>using namespace std;int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};void year(){ int y; int dd; cout...原创 2018-05-08 18:07:39 · 360 阅读 · 0 评论 -
51nod 1279 扔盘子
有一口井,井的高度为N,每隔1个单位它的宽度有变化。现在从井口往下面扔圆盘,如果圆盘的宽度大于井在某个高度的宽度,则圆盘被卡住(恰好等于的话会下去)。盘子有几种命运:1、掉到井底。2、被卡住。3、落到别的盘子上方。盘子的高度也是单位高度。给定井的宽度和每个盘子的宽度,求最终落到井内的盘子数量。如图井和盘子信息如下:井:5 6 4 3 6 2 3盘子:2 3 5 2 4最终有4个盘子落在井内。本题由...原创 2018-05-15 23:49:13 · 180 阅读 · 0 评论 -
快读__int128
128在c++库里面有定义但是没有定义他的读入读出所以需要自己写个快读(在dev可编译成功,codeblock不行)用128写的快速幂#include <bits/stdc++.h> using namespace std; typedef __int128 ll;typedef long double ld; const ll maxn = 1e5 + 5...原创 2019-03-19 00:31:48 · 445 阅读 · 0 评论 -
memset对数组的初始化
//0x(零和英文字母x)是十六进制的前缀(十六进制不区分大小写)//memset对字节赋值#include<iostream>#include<cstring>using namespace std;const int maxx=3;int main(){ //char的int值范围在-128~127 0~127为正值,从128~255为-...转载 2018-10-23 14:04:18 · 1985 阅读 · 0 评论 -
洛谷1706全排列(next_permutation()的具体内容)
题目描述输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字。输入输出格式输入格式: n(1≤n≤9) 输出格式: 由1~n组成的所有不重复的数字序列,每行一个序列。每个数字保留5个常宽。 输入输出样例输入样例#1: 复制3输出样例#1: 复制 1 2 3 1 ...原创 2018-08-04 16:35:02 · 355 阅读 · 0 评论 -
牛客 Wannafly挑战赛21 A 灯塔(数学知识)
运用数学知识传送门 飞跃:在平面中,一个点绕任意点旋转θ度后的点的坐标链接:https://www.nowcoder.com/acm/contest/159/A来源:牛客网 题目描述Z市是一座港口城市,来来往往的船只依靠灯塔指引方向。在海平面上,存在n个灯塔。每个灯塔可以照亮以它的中心点为中心的90°范围。特別地, 由于特殊限制,每个灯塔照亮范围的角的两条边必须要么与坐标轴平行要...原创 2018-08-03 23:06:40 · 249 阅读 · 0 评论 -
洛谷P1498 南蛮图腾(用复制粘贴思想)
题目描述自从到了南蛮之地,孔明不仅把孟获收拾的服服帖帖,而且还发现了不少少数民族的智慧,他发现少数民族的图腾往往有着一种分形的效果,在得到了酋长的传授后,孔明掌握了不少绘图技术,但唯独不会画他们的图腾,于是他找上了你的爷爷的爷爷的爷爷的爷爷……帮忙,作为一个好孙子的孙子的孙子的孙子……你能做到吗?输入输出格式输入格式: 每个数据一个数字,表示图腾的大小(此大小非彼大小) n&l...原创 2018-07-26 16:06:13 · 294 阅读 · 0 评论 -
洛谷 P1080 国王游戏//高精度乘法,高精度除法,贪心qwq(心痛)
题目描述恰逢 HH 国国庆,国王邀请 nn 位大臣来玩一个有奖游戏。首先,他让每个大臣在左、右手上面分别写下一个整数,国王自己也在左、右手上各写一个整数。然后,让这 nn 位大臣排成一排,国王站在队伍的最前面。排好队后,所有的大臣都会获得国王奖赏的若干金币,每位大臣获得的金币数分别是:排在该大臣前面的所有人的左手上的数的乘积除以他自己右手上的数,然后向下取整得到的结果。国王不希望某一个大臣获得特别...原创 2018-07-10 21:27:25 · 354 阅读 · 0 评论 -
洛古P1090 合并果子 //对于队列//桶排序等的应用
题目描述在一个果园里,多多已经将所有的果子打了下来,而且按果子的不同种类分成了不同的堆。多多决定把所有的果子合成一堆。每一次合并,多多可以把两堆果子合并到一起,消耗的体力等于两堆果子的重量之和。可以看出,所有的果子经过 n-1n−1 次合并之后, 就只剩下一堆了。多多在合并果子时总共消耗的体力等于每次合并所耗体力之和。因为还要花大力气把这些果子搬回家,所以多多在合并果子时要尽可能地节省体力。假定每...原创 2018-07-10 01:02:45 · 688 阅读 · 0 评论 -
队列//优先出列
#include<queue>#include<iostream>#include<string>using namespace std;int test[100];struct cmp{ bool operator()(int x,int y){ return test[x]>test[y]; }};str...转载 2018-07-10 00:47:12 · 383 阅读 · 0 评论 -
数论51nod1058 N的阶乘的长度
1058 N的阶乘的长度 基准时间限制:1 秒 空间限制:131072 KB 分值: 0 难度:基础题 收藏 关注 输入N求N的阶乘的10进制表示的长度。例如6! = 720,长度为3。 Input 输入N(1...原创 2018-04-23 23:26:12 · 268 阅读 · 0 评论 -
二分算法
//用第一个代码会返回不确定的位置;即当查找这个的书有多个位置,那么返回的值不确定;/*#include <bits/stdc++.h>using namespace std;int main(){ int a[10]={0,1,1,1,2,3,4,5,6,7}; int r=0,l=9; int k=1; int m; while(r&l...原创 2018-03-16 21:56:23 · 296 阅读 · 0 评论 -
洛古1138 大牛的代码以及我的代码,大牛值得学习
题目描述现有n个正整数,n≤10000,要求出这n个正整数中的第k个最小整数(相同大小的整数只计算一次),k≤1000,正整数均小于30000。输入输出格式输入格式:第一行为n和k; 第二行开始为n个正整数的值,整数间用空格隔开。输出格式:第k个最小整数的值;若无解,则输出“NO RESULT”。输入输出样例输入样例#1: 复制10 31 3 3 7 2 5 1 2 4 6输出样例#1: 复制...原创 2018-01-29 14:54:53 · 392 阅读 · 0 评论 -
sizeof
转载地址http://blog.csdn.net/wzy198852/article/details/7246836sizeof,一个其貌不扬的家伙,引无数菜鸟竟折腰,小虾我当初也没少犯迷糊,秉着“辛苦我一个,幸福千万人”的伟大思想,我决定将其尽可能详细的总结一下。但当我总结的时候才发现,这个问题既可以简单,又可以复杂,所以本文有的地方并不适合初学者,甚至都没有必要大作文章。但如果转载 2018-01-23 23:28:31 · 106 阅读 · 0 评论 -
蓝桥杯基础练习16进制转换成8进制
基础练习 十六进制转十进制 时间限制:1.0s 内存限制:512.0MB 问题描述 从键盘输入一个不超过8位的正的十六进制数字符串,将它转换为正的十进制数后输出。 注:十六进制数中的10~15分别用大写的英文字母A、B、C、D、E、F表示。样例输入FFFF样例输出65535技巧先将16进制转换成2进制,在将二进制转换成8进制;#include <iostream&...原创 2017-12-30 14:36:06 · 2500 阅读 · 7 评论 -
洛谷2192 数学知识
题目描述HXY得到了一些卡片,这些卡片上标有数字0或5。现在她可以选择其中一些卡片排成一列,使得排出的一列数字组成的数最大,且满足被90整除这个条件。同时这个数不能含有前导0,即0不能作为这串数的首位。如果不能排出这样的数,输出“-1”。输入输出格式输入格式:第一行,卡片的个数n。第二行,分别给出了这n个数(只能为数字5或0)。输出格式:仅一行,如果可以排出,则输出这个数。否则输出“-1”。输入输...原创 2018-01-05 12:37:26 · 428 阅读 · 0 评论 -
公约数 公倍数
#include using namespace std;int gcd(int a,int b){ return b==0?a:gcd(b,a%b);// 定义一个函数用辗转相除求公约数 这个代码相当于}//int a, int b;//while(b) 这里的 条件相当于b不等于0;//{r=a%b;//a=b;//b=r;//retur原创 2017-12-19 11:13:25 · 168 阅读 · 0 评论 -
strcmp strcpy ststr
strcmp比较两个字符串的大小如果1大于2 返回正数,如果1==2,返回0如果1小于2,返回负数。。。该函数头文件是string。hstrcpy相当于copy strcpy(s1,s2)是将s2存到s1中并且包含了s2的结束标志\0,,,,假设s2是asdfg 为5个字符,,那么s1是6个字节包含了\0;原创 2017-12-19 11:10:34 · 392 阅读 · 0 评论 -
C/C++中的atan和atan2函数
在C语言的math.h或C++中的cmath中有两个求反正切的函数atan(double x)与atan2(double y,double x) 他们返回的值是弧度 要转化为角度再自己处理下。前者接受的是一个正切值(直线的斜率)得到夹角,但是由于正切的规律性本可以有两个角度的但它却只返回一个,因为atan的值域是从-90~90 也就是它只处理一四象限,所以一般不用它。第二个ata转载 2017-12-13 19:53:15 · 16234 阅读 · 1 评论 -
C++数字按指定的位数输出
转自https://blog.csdn.net/zy122121cs/article/details/52094352这里探讨C++如何将数据按指定的位数输出,如将所有打印在屏幕上的数据都按4位数输出,不够的前面补0。这里要用到C++的两个输出控制,setw(位数),和setfill(指定字符)。不讲废话了,见下面代码: #include <iostream> #in...转载 2018-04-23 20:17:50 · 1380 阅读 · 3 评论 -
动态规划算法解最长公共子序列LCS问题
目录(?)[+]动态规划算法解LCS问题作者 July 二零一零年十二月三十一日本文参考:微软面试100题系列V0.1版第19、56题、算法导论、维基百科。第一部分、什么是动态规划算法ok,咱们先来了解下什么是动态规划算法。动态规划一般也只能应用于有最优子结构的问题。最优子结构的意思是局部最优解能决定全局最优解(对有些问题这个要求并不能完全满足,故有时需要引入一定的近似)。简单地说,问题能够分解成...转载 2018-04-18 23:54:41 · 834 阅读 · 0 评论 -
归并算法模板
//归并#include <iostream>#include <algorithm>typedef long long ll;using namespace std;const ll maxn = 1e5 + 7;ll c = 0;ll a[maxn],b[maxn];void mergesort(ll *a,ll *b,ll l,ll r){...原创 2018-04-24 23:42:07 · 265 阅读 · 0 评论 -
各种排序大法
转自https://www.cnblogs.com/zyb428/p/5673738.html看了总结图,我这里就总结一下 直接插入排序,冒泡排序,快速排序,堆排序和归并排序,使用C++实现重新画了总结图直接插入排序整个序列分为有序区和无序区,取第一个元素作为初始有序区,然后第二个开始,依次插入到有序区的合适位置,直到排好序刚开始在我那本《数据结构》看到大概这样的实现void InsertSort...转载 2018-04-22 14:50:57 · 226 阅读 · 2 评论 -
C++之substr与substring浅谈
转自:http://blog.sina.com.cn/s/blog_9d85c1900102v1rm.html区别:主要是两者的参数不同功能:相似。 substr :返回一个从指定位置开始的指定长度的子字符串substring :返回位于 String 对象中指定位置的子字符串。用法:stringvar.substr(start , [length ])参数stringvar 必...转载 2018-04-18 15:47:34 · 2347 阅读 · 0 评论 -
异或运算符的作用
https://blog.csdn.net/lwq573384928/article/details/45437465简略记忆:同0异11.由于0^0=0 0^1=1 所以,0^任何数 = 任何数2.由于1^0=1 1^1 =0所以,1^任何数 = 任何数取反3.任何数^任何数 = 0;4.用于将特定的位反转,如对10100001的第2位和第3位翻转,可以将数与00000110进行按位异或运算。原...转载 2018-04-16 19:08:10 · 548 阅读 · 0 评论 -
大数加法模板
#include <bits/stdc++.h>typedef long long ll;using namespace std;ll a[100000],b[100000];char aa[100000],bb[100000];ll z[100000];int main(){ cin >> aa >> bb; ll n = st...原创 2018-04-15 00:28:31 · 317 阅读 · 1 评论 -
大数减法模板
#include<bits/stdc++.h>typedef long long ll;using namespace std;ll a[100000],b[100000];ll z[200000],l;void sub(){ for(int i = 0; i < l; i ++) { z[i] = a[i] - b[i]; ...原创 2018-04-15 00:11:55 · 614 阅读 · 0 评论 -
大数乘法模板
#include<bits/stdc++.h>#define maxn 20005using namespace std;typedef long long ll;ll a[maxn],b[maxn];string aa,bb;ll z[maxn * 2 + 5];int main(){ cin >> aa >> bb; ...原创 2018-04-14 18:02:18 · 211 阅读 · 0 评论 -
进制转换之伟大c++ 与c语言
#include <iostream>using namespace std;int main(){ char c[100]; char a[17]={"0123456789ABCDEF"}; int r,h,i; while(cin>>r>>h) { if(r==0)cout<<...原创 2017-12-13 14:47:17 · 239 阅读 · 0 评论