![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
ACM
WangJunchengno2
无哈哈哈哈
展开
-
简单搜索 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 · 234 阅读 · 0 评论 -
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 · 155 阅读 · 0 评论 -
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 · 245 阅读 · 0 评论 -
HDU 2087 剪花布条
KMP水题: 一块花布条,里面有些图案,另有一块直接可用的小饰条,里面也有一些图案。对于给定的花布条和小饰条,计算一下能从花布条中尽可能剪出几块小饰条来呢? Input输入中含有一些数据,分别是成对出现的花布条和小饰条,其布条都是用可见ASCII字符表示的,可见的ASCII字符有多少个,布条的花纹也有多少种花样。花纹条和小饰条不会超过1000个字符长。如果遇见#字符,则不再进行工作...原创 2018-01-19 11:30:32 · 183 阅读 · 0 评论 -
SDNUOJ 1011
开始以为是排列组合,直到看到是不同的球和不同的盒,所以没法用简单的排列组合来完成,于是百度,发现了“斯特林数”,专门解决组合的问题。借鉴了这个博客:http://blog.csdn.net/sr_19930829/article/details/40888349终于AC: #include<iostream>#include<cstdio>#include...原创 2018-01-16 10:57:26 · 399 阅读 · 0 评论 -
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 · 288 阅读 · 0 评论 -
HDU 1116 Play on Words
本来以为这个题就是简单的并查集,但如果只用并查集的话就没办法解决重复输入的问题,于是百度,发现了这个:欧拉路!!!安利一个博客:http://blog.csdn.net/niushuai666/article/details/6917777所以这个题简单说就是定义一个in和out的数组,把每个单词的头和尾出现次数分别放在in和out中,最后进行判断。 #include<io...原创 2017-11-29 16:41:05 · 217 阅读 · 0 评论 -
图的基本算法(BFS和DFS)
一篇很不错的BFS 和 DFS的文章。 图是一种灵活的数据结构,一般作为一种模型用来定义对象之间的关系或联系。对象由顶点(V)表示,而对象之间的关系或者关联则通过图的边(E)来表示。 图可以分为有向图和无向图,一般用G=(V,E)来表示图。经常用邻接矩阵或者邻接表来描述一副图。 在图的基本算法中,最初需要接触的就是图的遍历算法,根据访问节点的顺序,可分为广度优先搜索(BFS)和深...转载 2017-11-24 18:35:51 · 322 阅读 · 0 评论 -
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 · 379 阅读 · 0 评论 -
sdnu1099
#include <iostream>#include <set>#include <string>using namespace std;int main(){ set<string> str1; //储存字符串片段 set<string&g...原创 2017-11-11 17:32:37 · 295 阅读 · 0 评论 -
Kruskal算法
关于最小生成树的一种算法,刚刚学习,试着写了一个代码,如有漏洞,请多包涵。关于Kruskal算法简单解释一下,首先在一个图中,有很多点,同时也有很多边把这些点连起来。因为每条边都有长度,所以要想求得如何用最小边把所有点连起来,就可以先把边按照从小到大排起来,然后遍历这些边。但是问题来了,如果有4个点恰好可以被4条最短边连成一个圈的话,就会出现错误,所以要对每个点使用并查集,每遍历一条边...原创 2018-01-23 12:58:54 · 290 阅读 · 0 评论 -
HDU2066 一个人的旅行(SPFA)
这个题相比较于一般的SPFA,还多加了一步草儿的家与图上的一些点相连,且距离为0。所以我们用链式前向星先来储存不连接图中点与 草儿的家 的边,然后再储存连接图中点与 草儿的家 的边。然后用SPFA来找出每个点到草儿的家的对短距离就OK了。(多亏题目给的点是1到1000,这样就可以把 草儿的家 设为0)下面是AC代码(因为题目没有考虑负环,所以就没有进行负环的判断): #include...原创 2018-02-09 08:17:48 · 571 阅读 · 0 评论 -
HDU 1002 A + B Problem II
大数加法,算是大数运算里最简单的,注意进位就OK了。思路大概是用字符串储存大数,然后把大数倒置并用整型数组储存,然后位对位加起来就行了。但这个题会有一些很刁钻的数据比如:00000+000,00001+00100等等类似的数据所以还需要在处理基本的加法前,把无意义的0去掉,这一步可以加在储存大数的倒置之前,也可以加在最终输出和的过程中(因为这些无意义的0对加法本身没有影响,但如果是减法的话...原创 2018-03-15 16:16:55 · 151 阅读 · 0 评论 -
简单搜索 棋盘问题
在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别。要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C。输入 输入含有多组测试数据。 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目。 n <= 8 , k <= n 当...原创 2018-07-09 12:16:10 · 266 阅读 · 0 评论 -
HDU1166 敌兵布阵(最简单的线段树)
线段树通用的几个函数:build()(建树)、pushup()(更新父节点)、pushdown()(用到lazy标记时使用)其他的单点更新、区间更新以及返回区间值等等,其内部代码原理都是差不多的。AC代码:#include <iostream>#include <cstdio>#include <cstring>using namespa...原创 2018-05-02 21:38:03 · 224 阅读 · 0 评论 -
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 · 243 阅读 · 0 评论 -
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 · 399 阅读 · 0 评论 -
大数组合--卢卡斯定理
组合数我们用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 · 319 阅读 · 0 评论 -
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 · 181 阅读 · 0 评论 -
HDU 1753
带小数点的大数加法,思路:1、记录小数点的位置,然后把他去掉,因为带小数点遇到进位不好算。2、按照大数加法,将没有小数点的大数加起来。(加的过程中如果记录到小数点位置,就把小数点加上)3、把小数部分多余的0去掉。代码:#include <iostream>#include <cstdio>#include <cstring>using names...原创 2018-03-19 17:27:41 · 235 阅读 · 0 评论 -
大数减法
之前更新了大数加法,减法相比较于加法,要注意的东西多了一些,拿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 · 232 阅读 · 0 评论 -
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 · 155 阅读 · 0 评论 -
sdnu 1080
Description Input Output 由cosx计算tan2x 一行内两个整数 a b 以样例所示形式输出tan2x 表示cosx=a/b 第一次做时,对平方这一步使用了pow()函数,因为没有...原创 2017-11-05 16:12:08 · 481 阅读 · 0 评论