自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 HDU 6085 Rikka with Candies

题意: 给出一个A数组中有n个数, B数组中有m个数, 再给出q个询问每个询问为k, 求有多少对pair (i, j)使得AiA_i对BjB_j取余为k结果对2取余。 代码:# include <bits/stdc++.h> using namespace std; typedef long long LL;const int INF = 0x3f3f3f3f; const int Q = 1e

2017-08-10 09:23:36 263 1

原创 HDU 6060 RXD and dividing

题意: 给出一个具有n个顶点的树, 将其中的2~n分成k部分, 求1号顶点到分成k块后各个顶点的最大权值和。 思路: 将2~n的结点编号{1~k},每条边的权乘以其下子树的大小与k的较小值。 代码:# include <bits/stdc++.h> using namespace std; typedef long long LL;const int INF = 0x3f3f3f3f; co

2017-08-08 10:42:06 246

原创 HDU 6069 Counting Divisors

题目链接思路: 先打一个从1到1e6的素数表,然后枚举不超过r√\sqrt{r}的所有素数,然后再去枚举这些素数在l和r区间内的倍数,将其分解质因数,最后剩下的素数的c只可能是0或1,计算出每个数对应的因子个数,对于每个数的因子个数就等于枚举的因子个数*k+1累乘起来,最后加起来即可。 代码# include <bits/stdc++.h> using namespace std; typede

2017-08-05 16:42:37 212

原创 2017 Multi-University Training Contest - Team 2 1001 1 Is Derek lying?

题目链接题意: 先给出三个数,分别表示题目的个数,Derek说自己题目正确的个数和Alfia说自己题目正确的个数,然后给出两个字符串,分别表示两个人的答案,判断是否有人说谎。思路: 先找出两个字符串相同的个数和不同的个数,然后用一个循环将X的值和Y的值还有相同的值同时进行减,直到其中有一个值为零,这里假设对的题目全是相等的,然后进行判断,如果两个同时为零,则必定没有说谎, 否则将X与Y的值相加

2017-07-27 19:15:53 356

原创 2017 Multi-University Training Contest - Team 1 1002 Balala Power!

题目链接题意 给定多个字符串,给二十六个字母赋予0~25的值,每个字符串形成一个26进制的数字,求怎么分配权值使得这几个字符串的和最大。思路 官方:每个字符对答案的贡献都可以看作一个 26 进制的数字,问题相当于要给这些贡献加一个 0 到 25 的权重使得答案最大。最大的数匹配 25,次大的数匹配 24,依次类推。排序后这样依次贪心即可,唯一注意的是不能出现前导 0。 建一个26进制的数组nu

2017-07-26 15:30:18 234

原创 2017山东省赛B题Quadrat

题目链接题意: 找出有多少个数,它的长度为n,且平方后对10^n取模与原来的数之间的差距不大于d(每一个数字的差距和)思路: 对于10以内的数,如果d等于零的时候,只有四个数满足要求:0,1,5,6 如果d等于二时,有八个数满足要求:0,1,2,4,5,6,7,9 于是进行打表,先找出1<=n<=4范围内0<=d<=3的答案。 1:4 4 8 8 2:4 12 40 56 3:4

2017-07-24 20:31:14 283

原创 HDU 4521 小明系列问题——小明序列 (DP)

Problem Description   大家都知道小明最喜欢研究跟序列有关的问题了,可是也就因为这样,小明几乎已经玩遍各种序列问题了。可怜的小明苦苦地在各大网站上寻找着新的序列问题,可是找来找去都是自己早已研究过的序列。小明想既然找不到,那就自己来发明一个新的序列问题吧!小明想啊想,终于想出了一个新的序列问题,他欣喜若狂,因为是自己想出来的,于是将其新序列问题命名为“小明序列”。  提起小明序

2017-03-07 18:29:05 211

原创 POJ 1125 Stockbroker Grapevine(Floyd算法)

DescriptionStockbrokers are known to overreact to rumours. You have been contracted to develop a method of spreading disinformation amongst the stockbrokers to give your employer the tactical edge in t

2017-03-03 20:23:00 180

原创 hdu 3037 Saving Beans (卢卡斯定理)

Problem Description Although winter is far away, squirrels have to work day and night to save beans. They need plenty of food to get through those long cold days. After some time the squirrel family t

2017-03-02 20:13:41 262

原创 POJ 2387 Til the Cows Come Home (dijikstra)

DescriptionBessie is out in the field and wants to get back to the barn to get as much sleep as possible before Farmer John wakes her for the morning milking. Bessie needs her beauty sleep, so she want

2017-02-28 19:57:06 541

原创 最长公共子序列的问题 (DP)

给定两个字符串s和t, 求出这两个字符串最长的公共子序列的长度。dp[i][j]:=s和t对应的LCS(最长公共子序列)的长度。int n, m; int dp[MAX][MAX]; void solve () { for (int i=0; i<n; ++i) for (int j=0; j<m; ++j) { if (s[i] == t[j])

2017-02-28 19:01:51 329

原创 01背包和完全背包

int dp[MAX];void ()//01背包问题 { for (int i=0; i<n; ++i) for (int j=W; j>=w[i]; --j) { dp[j] = max (dp[j], dp[j-w[i] + v[i]); } printf ("%d", dp[W]); } void ()//完全背包问题 {

2017-02-28 18:50:44 184

原创 HDU 2095 find your present (2) (位异或)

Problem Description In the new year party, everybody will get a “special present”.Now it’s your turn to get your special present, a lot of presents now putting on the desk, and only one of them will b

2017-02-28 17:36:10 259 2

原创 POJ 1061 青蛙的约会

Description两只青蛙在网上相识了,它们聊得很开心,于是觉得很有必要见一面。它们很高兴地发现它们住在同一条纬度线上,于是它们约定各自朝西跳,直到碰面为止。可是它们出发之前忘记了一件很重要的事情,既没有问清楚对方的特征,也没有约定见面的具体位置。不过青蛙们都是很乐观的,它们觉得只要一直朝着某个方向跳下去,总能碰到对方的。但是除非这两只青蛙在同一时间跳到同一点上,不然是永远都不可能碰面的。为了帮

2017-02-27 14:33:19 293

原创 SDNU 1320 Look for homework

Description Super scholar robs the all homework of others.The monitor decides to combat with the super scholar so as to help students to get back the homework.But super scholar lives in a castle b

2017-02-22 21:52:32 252

原创 string用法

string s1; 默认构造函数,s1为空串 string s2(s1); 将s2初始化为s1的一个副本 string s3(“valuee”); 将s3初始化一个字符串面值副本 string s4(n,’c’); 将s4 初始化为字符’c’的n个副本 cin>>s5; 读取有效字符到遇到空格 getline(cin,s6); 读取字符到遇到换行,空格可读入,

2017-02-18 22:09:16 356

原创 拓展欧几里得算法

在介绍拓展欧几里得算法之前,先说一下欧几里得算法: 欧几里得算法又称辗转相除法,由于计算两个整数a,b的最大公约数。 基本算法:设a=qb+r,其中a,b,q,r都是整数,则gcd(a,b) = gcd(b,a%b)代码如下:int gcd (int a, int b) { if (b == 0) return a; else return gcd

2017-01-23 15:38:24 502

原创 迪杰斯特拉算法

首先设置顶点集合S, 将起始点加入该集合,根据起始点到其他顶点的路径长度,选择路径长度最小的顶点加入集合,根据所加入顶点更新源点到其他顶点的路径长度,然后在寻找最小边的顶点,重复上述操作直到求出所有顶点的长度。下面是代码:void dijkstra (int n) { for (int i=1; i<=n; ++i) { vis[i] = 0; dis

2017-01-20 20:21:12 270

原创 KMP算法

以下思想来源于严蔚敏的《数据结构(C语言版)》以及高一凡的《数据结构与算法解析》 先介绍一个比较基础的算法:基本思想:从主串S的第POS个字符和模式串的第一个字符比较之,若相等,则继续比较后续字符;否则从主串下一个字符起重新和模式串的第一个字符进行比较。以此类推,直至模式T中的每一个字符和S中的一个连续的字符序列想等,则匹配成功,函数值为和模式T中的第一个字符相等字符在主串S中的序号,否则匹

2017-01-19 20:21:23 239

原创 1283.山师好男友(开关灯问题)

Description 川川想给他的女朋友一些惊喜,于是他准备了好多彩灯,他的女朋友十分感动,然后让川川这样做:如果她走到了第2盏彩灯处,那么川川就要改变所有2的倍数的灯的状态(灯有两种状态,开着的和关着的),假如一开始所有灯都是关着的,那么川川就要打开第2盏,第4盏,第6盏…,同样的道理,假如她走到的第三盏灯的位置,那么川川就要改变第3盏,第6盏,第9盏…的状态。 现在一开始所有的灯都是关着的

2016-12-18 22:11:41 479

原创 SDNU 1217 CD收藏

Description lmh平常爱听歌,所以买了很多的CD来收藏,但是因为平常整理不当,所以忘记了这些CD的歌手是谁。现在他想知道他到底收藏了多少位歌手的专辑,于是他想了一个办法,同时拿出两个CD来听,可以分辨出来是否为同一个歌手唱的。(如果没有说明则认为是没有分辨出来,为不同歌手)现在他列了一个表记录哪些专辑是同一歌手,但他面对着这一堆记录不知如何处理,请你告诉他到底他有多少个歌手的专

2016-12-11 20:56:23 564

原创 SDNU 1126 Integer Inquiry

Description One of the first users of BIT’s new supercomputer was Chip Diller. He extended his exploration of powers of 3 to go from 0 to 333 and he explored taking various sums of those numbers. Thi

2016-12-11 20:49:16 264

原创 SDNU 1303 高精度(A+B)

Description求A+BInput 多组测试样例。两个正整数X,Y(0≤X,Y≤10^100)Output 输出结果 Sample Input1 1 12345 54321Sample Output2 66666思路: 先用字符数组存起来,在将其转化为整形数组,当两个数相加之和大于等于10时,向前进一位,然后再对自己取余,和加法的打草的计算方法一样。#include<iostream

2016-12-11 20:44:22 320

原创 Happy 2006

Two positive integers are said to be relatively prime to each other if the Great Common Divisor (GCD) is 1. For instance, 1, 3, 5, 7, 9…are all relatively prime to 2006. Now your job is easy: for the g

2016-12-06 15:10:29 392

原创 Prime Test

应用:Miller_Rabin算法 和Pollard_rho 算法Given a big integer number, you are required to find out whether it's a prime number. Input The first line contains the number of test cases T (1 <= T <= 20 ), th

2016-12-05 22:37:46 295

原创 素数测试(Miller-Rabin测试)

思想参照:[http://www.matrix67.com/blog/archives/234] 看了这位大牛的博客,觉得豁然开朗,于是自己敲一遍以加深印象。 1.素数的个数无限多且不存在最大的素数 证明反证法:假设存在最大的素数P,则我们可以得到一个新的数为所有的素数向乘加一,即2*3*5*7*……*P+1, 显然它不能被任一素数整除(所有的素数除它都余一),这说明我们找到了一

2016-12-04 20:44:27 1223

原创 Red and Black (深度优先搜索 DFS)

G - Red and Black Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u SubmitStatus Description There is a rectangular room, covered with square tiles. Each tile is colored

2016-11-28 20:11:00 493

原创 Oil Deposits(深度优先搜索DFS)

F - Oil Deposits Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u SubmitStatus Description The GeoSurvComp geologic survey company is responsible for detecting undergrou

2016-11-28 20:03:15 359

原创 深度优先搜索 (DFS)

从图中的某顶点V出发,访问此顶点,然后依次从V的各个未被访问的邻接点出发,深度优先搜索遍历图,如果发现不能到达目标解,就返回上一个节点,然后从另一条路开始走到底,直到图中所有与V路径想通的顶点都被访问到,这种尽量往深处走的概念既是深度优先搜索。 简略代码:const int MAXN=1000+10; 需使用的变量: vector<int> g[MAXN];//存储边 bool visited

2016-11-28 19:55:22 321

原创 最长上升子序列

主演思想: 遍历之前的所有数并继承他前面的上升长度最长的并且比他小那个数的序列长度,并加一 代码:# include <cstdio> # include <iostream> # include <cstring> # define MAX 1000 using namespace std; int s[MAX + 10];//s数组保存序列 int slen [MAX + 10];// 保存

2016-11-28 19:16:29 288

原创 Values whose Sum is 0 (二分查找)

Description The SUM problem can be formulated as follows: given four lists A, B, C, D of integer values, compute how many quadruplet (a, b, c, d ) ∈ A x B x C x D are such that a + b + c + d = 0 . In

2016-11-26 10:34:40 388

原创 二分查找

二分查找就是不停的将数组折半,每次拿中间元素和goal元素进行比较。二分查找算法是在有序数组中用到的较为频繁的一种算法,在未接触二分查找算法时,最通用的一种做法是,对数组进行遍历,跟每个元素进行比较,其时间为O(n).但二分查找算法则更优,因为其查找时间为O(lgn),譬如数组{1, 2, 3, 4, 5, 6, 7, 8, 9},查找元素6,用二分查找的算法执行的话,其顺序为: ****

2016-11-26 10:22:25 262

转载 快速排序

快速排序之所比较快,因为相比冒泡排序,每次交换是跳跃式的。每次排序的时候设置一个基准点,将小于等于基准点的数全部放到基准点的左边,将大于等于基准点的数全部放到基准点的右边。这样在每次交换的时候就不会像冒泡排序一样每次只能在相邻的数之间进行交换,交换的距离就大的多了。因此总的比较和交换次数就少了,速度自然就提高了。当然在最坏的情况下,仍可能是相邻的两个数进行了交换。因此快速排序的最差时间复杂度和冒泡排

2016-11-25 14:00:23 260

转载 ACM 心路历程(转)

刻苦的训练我打算最后稍微提一下。主要说后者:什么是有效地训练?我想说下我的理解。 很多ACMer入门的时候,都被告知:要多做题,做个500多道就变牛了。其实,这既不是充分条件、也不会是必要条件。我觉得一般情况下,对于我们普通学校的大学生,各方面能力的差距不会太大,在这种情况下,训练和学习的方法尤为重要。其实,500题仅仅是一个标志,而且仅仅表示你做ACM-ICPC有一定的时间,我们训练的目的是什么

2016-11-20 10:14:06 385

原创 快速幂

SDNU OJ 1349 快速幂入门Description 输入3个数a,b,c,求a^b mod c=? Input 多组数据:每组数据,三个数a,b,c。 Output 对于每一组数据,输出一个数,即a^b mod c 的答案。 Sample Input5 10 91.用递归实现# include <cstdio> # include <iostream> using namespa

2016-11-20 09:59:40 306

空空如也

空空如也

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

TA关注的人

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