- 博客(10)
- 收藏
- 关注
原创 poj 2262 Goldbach's Conjecture(筛素数)
2018-5-23验证哥德巴赫猜想,直接将素数全部筛出来,然后从小到大枚举即可,找到的第一个满足条件的肯定就是差值最大的即满足题意的。普通筛素数:#include<iostream>#include<cstring>using namespace std;const int N = 1000000;bool isprime[N+1];int pr...
2018-05-24 19:47:26 211
原创 HDOJ 1757 A Simple Math Problem(矩阵快速幂)
2018-5-24简单的矩阵快速幂问题,重点是如何找到对应关系。f(10) a0 a1 a2 a3 a4 a5 a6 a7 a8 a9 f(9)f(9) 1 0 0 0 0 0 0 0 0 0 f(8)f(8) 0 1 0 0 0 0 0 0 0 0 f(7)f(7) 0 0 1 0 0 0 0...
2018-05-24 14:55:34 171
原创 HDOJ 1285 确定比赛名次(拓扑排序)
2018-5-23简单的拓扑排序,我用的是优先队列,按照字典序排序,将入度为零的点放入队列,则直接按照字典序排序。需要注意的是:如果有两个重复的数据,则相应的入度值就不应该加一了。#include<iostream>#include<queue>#include<cstring>using namespace std;const int...
2018-05-23 20:48:32 229
原创 UVa 129 - Krypton Factor(回溯法)
2018-5-12如何判断一个字符串是否包含连续重复子串呢? 我们可以检查所有长度为偶数的子串,判断每一个子串的前半部分是否与后半部分相同,但是实际上我们只需每一次判断当前串的后缀即可,因为前面的我们已经在前面判断过了。就好像八皇后问题一样,我们只需要当前放置的皇后是否满足题意即可,而不必考虑之前的皇后了。#include<iostream>using namespace ...
2018-05-12 20:52:34 416
原创 映射:map
2018-5-11输入一些单词,找出满足以下条件的单词: 该单词不能通过字母重排,得到输入文本中的另外一个单词。 在判断是否满足条件时,字母不区分大小写,但在输出时应该保留输入中的大小写,按照字典序进行排列(大写字母在小写字母的前面)。#include<iostream>#include<map>#include<set>#include&...
2018-05-11 20:56:58 130
原创 集合:set
2018-5-11输入一个文本,找到所有不同的单词,按字典序从小到大输出,单词不区分大小写。#include<iostream>#include<set>#include<string>#include<sstream>using namespace std;set<string> dict;int main(...
2018-05-11 20:06:42 211
原创 如何计算出int的数据范围
2018-5-11法一: 利用C语言的自带的变量,加入头文件再输出即可。#include<stdio.h>#include<limits.h>int main(){ printf ("%d %d\n",INT_MIN,INT_MAX); return 0;}法二: int占四个字节,用十六进制表示之后再输出即可。#inclu...
2018-05-11 18:06:46 2358
原创 HDU1026 Ignatius and the Princess I(深度优先搜索)
2018-5-2其实广搜还是比较容易想到的,但是这道题目相对复杂了一点,需要注意的是: 1)我们可能在那点需要花个时间打个怪兽 2)我们需要记录走过的路径并倒序输出(倒序输出可以用深度优先搜索实现)#include&lt;iostream&gt;#include&lt;cstring&gt;#include&lt;queue&gt;#define inf 0x3f3f3f3f...
2018-05-02 21:40:16 146
原创 HDOJ 杭电1874-畅通工程(Floyd算法)
2018-5-1我用的是floyd算法,不得不说,这个算法还是相当的优美了; 虽然说时间复杂度达到了O(n^3),但是代码还是相当简洁了! ……对于这个题目而言,有几点需要注意的地方: 1)赋值是双向的,比如说a,b之间有一条要花费time时间的路,那么我们需要将x[a][b]与x[b][a]都赋值为time。 2)有重边:对于这种情况我们需要取最小的边。 3)如果起点和终点相...
2018-05-01 22:07:49 158
原创 HDU杭电2066 - 一个人的旅行(Dijkstra算法)
2018-5-1今天抽时间看了最短路的几种算法:这道题目用的是Dijkstra算法,算法的主要思想是按照路径长度递增的次序产生最短路径。对于这个题目而言,需要注意的是: 1)赋值是双向的,比如说a,b之间有一条要花费time时间的路,那么我们需要将x[a][b]与x[b][a]都赋值为time。 2)有重边:对于这种情况我们需要取最小的边。 3)多源转换为单源:其实也就等同于0点...
2018-05-01 21:10:31 276
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人