自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 收藏
  • 关注

原创 简单搜索 Find The Multiple

 Given a positive integer n, write a program to find out a nonzero multiple m of n whose decimal representation contains only the digits 0 and 1. You may assume that n is not greater than 200 and th...

2018-07-15 20:46:58 268

原创 简单搜索 棋盘问题

在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。输入 输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n 当...

2018-07-09 12:16:10 305

原创 HDU1166 敌兵布阵(最简单的线段树)

线段树通用的几个函数:build()(建树)、pushup()(更新父节点)、pushdown()(用到lazy标记时使用)其他的单点更新、区间更新以及返回区间值等等,其内部代码原理都是差不多的。AC代码:#include <iostream>#include <cstdio>#include <cstring>using namespa...

2018-05-02 21:38:03 260

原创 JAVA大数逆序

最近看了很多java大数的博客,基础的东西很多大牛都写过了,我就补一点逆序的小方法。import java.util.*;import java.math.*;public class Main{ public static void main(String args[]) { Scanner cin = new Scanner(System.in); BigInteger a...

2018-05-01 12:22:15 267

原创 POJ 3264

很简单的线段树题。上代码:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int maxn = 50010;struct stuff{ int mx,mi; in...

2018-04-25 19:48:48 435

转载 超好用的小函数:min_element和max_element

转来的,留着以后用。头文件:#include<algorithm>作用:返回容器中最小值和最大值。max_element(first,end,cmp);其中cmp为可选择参数!#include<iostream> #include<algorithm> using namespace std; bool cmp(int a,int b) {...

2018-04-24 21:08:49 661

原创 大数组合--卢卡斯定理

组合数我们用Cxx来表示,一切尽在代码中。。。简单说就是一行代码来回捣鼓:lucas(n, m)%p = lucas(n/p, m/p)*C(n%p, m%p)%p/* 这个是干啥用的呢,有这么一类题,让你求个C54,呵呵简单。 but,我数据范围给你1~1e18,你怎么说! woc,你tm在玩我,ok你给我这么大数据,无论如何long long都放不开...

2018-04-20 18:03:15 357

原创 HDU1540 Tunnel Warfare

比较简单的线段树的区间合并(比旅馆的稍微要考虑的东西要多一点)。先放代码:#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <stack>using namespace std;const int ma...

2018-04-18 18:35:48 220

原创 关于扩展欧几里得算法

欧几里得算法:用来求最小公倍数的一个简单的递归函数。扩展欧几里得算法:用来求ax+by = gcd(a,b)(为什么是gcd(a,b),我们后面会讲)这个式子中x和y的一对整数解(不是唯一,还有其他的xy解)。例如:6x+15y=3,这里的3恰好是gcd(6,15),所以算出来的x,y解就是这个式子的一个合理解。但是只求一组解有时远远不够,而且为了省时间,不妨将每个合理解之间的关系找出来,下面开始...

2018-03-21 20:27:25 252

原创 HDU 1753

带小数点的大数加法,思路:1、记录小数点的位置,然后把他去掉,因为带小数点遇到进位不好算。2、按照大数加法,将没有小数点的大数加起来。(加的过程中如果记录到小数点位置,就把小数点加上)3、把小数部分多余的0去掉。代码:#include <iostream>#include <cstdio>#include <cstring>using names...

2018-03-19 17:27:41 273

原创 大数减法

之前更新了大数加法,减法相比较于加法,要注意的东西多了一些,拿a-b举例比如:1.a和b的位数大小,如果a>b,那么直接减;如果a<b,就换成b-a,最后输出一个'-'          2.如果a、b的位数相同,比较一下数的大小,道理同上。          3.进位,一旦差出现负数,则向上借1,如果是0,继续借,直到借成,顺便把中间的0更新成9.(如果是100005,要...

2018-03-15 16:40:16 265

原创 HDU 1003 Max Sum

最大子序列和。动态规划思想,算基础的DP了,先放代码,再讲解:#include <iostream>#include <cstdio>using namespace std;const int maxn = 100010;int mx, be, en;int num[maxn];int main(){ int t, n, i, pt, x =...

2018-03-15 16:28:16 179

原创 HDU 1002 A + B Problem II

大数加法,算是大数运算里最简单的,注意进位就OK了。思路大概是用字符串储存大数,然后把大数倒置并用整型数组储存,然后位对位加起来就行了。但这个题会有一些很刁钻的数据比如:00000+000,00001+00100等等类似的数据所以还需要在处理基本的加法前,把无意义的0去掉,这一步可以加在储存大数的倒置之前,也可以加在最终输出和的过程中(因为这些无意义的0对加法本身没有影响,但如果是减法的话...

2018-03-15 16:16:55 183

原创 HDU2066 一个人的旅行(SPFA)

这个题相比较于一般的SPFA,还多加了一步草儿的家与图上的一些点相连,且距离为0。所以我们用链式前向星先来储存不连接图中点与 草儿的家 的边,然后再储存连接图中点与 草儿的家 的边。然后用SPFA来找出每个点到草儿的家的对短距离就OK了。(多亏题目给的点是1到1000,这样就可以把 草儿的家 设为0)下面是AC代码(因为题目没有考虑负环,所以就没有进行负环的判断): #include...

2018-02-09 08:17:48 623

原创 Kruskal算法

关于最小生成树的一种算法,刚刚学习,试着写了一个代码,如有漏洞,请多包涵。关于Kruskal算法简单解释一下,首先在一个图中,有很多点,同时也有很多边把这些点连起来。因为每条边都有长度,所以要想求得如何用最小边把所有点连起来,就可以先把边按照从小到大排起来,然后遍历这些边。但是问题来了,如果有4个点恰好可以被4条最短边连成一个圈的话,就会出现错误,所以要对每个点使用并查集,每遍历一条边...

2018-01-23 12:58:54 322

原创 HDU 1358 Period

做这个题前,依然需要引入两个公式:是否是循环节(i % (i - next[i]) == 0)和循环部分的长度(i - next[i])。 For each prefix of a given string S with N characters (each character has an ASCII code between 97 and 126, inclusive), we wan...

2018-01-20 14:06:38 183

原创 HDU Count the string

在做这个题之前,有一个很有意思的点,举个例子:ababab这个字符串的next数组是-1 0 0 1 2 3。但是在getnext函数中,对next进行赋值的部分是next[++i] = ++j,也就是说每一次进入循环的i和在此次循环中next[i]的i是相差1的。所以就说在-1 0 0 1 2 3的后面还有一个针对整个字符串的next[len] = 4(len是字符串长度)。这个4就...

2018-01-19 19:32:01 278

原创 HDU 2087 剪花布条

KMP水题: 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Input输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。如果遇见#字符,则不再进行工作...

2018-01-19 11:30:32 211

原创 SDNUOJ 1011

开始以为是排列组合,直到看到是不同的球和不同的盒,所以没法用简单的排列组合来完成,于是百度,发现了“斯特林数”,专门解决组合的问题。借鉴了这个博客:http://blog.youkuaiyun.com/sr_19930829/article/details/40888349终于AC: #include<iostream>#include<cstdio>#include...

2018-01-16 10:57:26 433

原创 SDNU 1094

DescriptionThere is an analog clock with two hands: anhour hand and a minute hand. The two hands form an angle. The angle is measuredas the smallest angle between the two hands. The angle between th...

2017-12-08 15:06:19 321

原创 c++ 中的各种进制转换函数整理

strtol 函数:它的功能是将一个任意1-36进制数转化为10进制数,返回是long int型。函数为long int strtol(const char *nptr, char **endptr, int base)base是要转化的数的进制,非法字符会赋值给endptr,nptr是要转化的字符,例如:char buffer[20]="10379cend$3";

2017-12-01 19:28:23 26382

原创 HDU 1116 Play on Words

本来以为这个题就是简单的并查集,但如果只用并查集的话就没办法解决重复输入的问题,于是百度,发现了这个:欧拉路!!!安利一个博客:http://blog.youkuaiyun.com/niushuai666/article/details/6917777所以这个题简单说就是定义一个in和out的数组,把每个单词的头和尾出现次数分别放在in和out中,最后进行判断。 #include<io...

2017-11-29 16:41:05 244

转载 图的基本算法(BFS和DFS)

一篇很不错的BFS 和 DFS的文章。  图是一种灵活的数据结构,一般作为一种模型用来定义对象之间的关系或联系。对象由顶点(V)表示,而对象之间的关系或者关联则通过图的边(E)来表示。 图可以分为有向图和无向图,一般用G=(V,E)来表示图。经常用邻接矩阵或者邻接表来描述一副图。 在图的基本算法中,最初需要接触的就是图的遍历算法,根据访问节点的顺序,可分为广度优先搜索(BFS)和深...

2017-11-24 18:35:51 350

原创 vj作业

  B - Fractions Again?!    It is easy to see that for every fraction in the form 1k(k > 0), we can always find two positive integersx and y, x ≥ y, such that:1/k=1/x+1/yNow our qu...

2017-11-13 21:13:35 416

原创 sdnu1099

 #include <iostream>#include <set>#include <string>using namespace std;int main(){ set<string> str1; //储存字符串片段 set<string&g...

2017-11-11 17:32:37 346

原创 sdnu 1080

 Description     Input             Output 由cosx计算tan2x             一行内两个整数 a b     以样例所示形式输出tan2x                                        表示cosx=a/b    第一次做时,对平方这一步使用了pow()函数,因为没有...

2017-11-05 16:12:08 513

原创 num++和++num在逗号表达式中的计算顺序

先来看一道题:若有int num = 7, sum = 7;则计算表达式sum = num++, sum++, ++num后sum的值为__(A)7     (B)8     (C)9     (D)10答案为:B对于此题网上有这个解释:https://zhidao.baidu.com/question/355821990.html最佳答案的解释为:n = 表达式1,表达式

2017-10-29 19:55:37 2559

空空如也

空空如也

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

TA关注的人

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