HDU
无忧无虑的兔兔
这个作者很懒,什么都没留下…
展开
-
HDU1753(大数相加)
这道题本质上就是大数相加,用string处理会很方便。分为整数部分和小数部分。先让小数和小数相加,以小数点对齐,加完把多余的零去掉,可能会有进位到整数的情况,如果有的话整数部分加一就行了。然后整数和整数相加,然后把整数和小数连接起来,输入的时候可能会有正整数,可以让正整数 +’.’+‘0’,变成小数。#include<string>#include<iostream>...原创 2019-10-17 13:27:34 · 209 阅读 · 0 评论 -
hdu1711(kmp)
#include<iostream>using namespace std;int a[1000005];int b[10005];int nextarr[10005];int n, m;//void getnext() //未优化//{// nextarr[0] = -1;// int k = -1;// int j = 0;// ...原创 2019-10-15 14:22:31 · 136 阅读 · 0 评论 -
hdu1715(大数相加)
这题主要考察的就是大数相加,借助string可以很方便的做这道题。#include<string>#include<iostream>using namespace std;string fun(string a, string b){ int len1 = a.length(); int len2 = b.length(); if (len1 > ...原创 2019-10-15 09:08:18 · 164 阅读 · 0 评论 -
HDU1598(并查集)
这题我用DFS超时,用并查集可以AC。#include<iostream>#include<algorithm>using namespace std;int f[210];int n, m, pos;class Edge{public: int u, v, val; friend bool operator<(const Edge& a...原创 2019-09-30 13:35:41 · 152 阅读 · 0 评论 -
HUD1597(二分查找)
#include<iostream>using namespace std;long long array1[100000];int find(int n){ int bot = 1; int top = 100000; int mid; while (bot <= top) { mid = (bot + top) / 2; if (n > a...原创 2019-09-30 10:55:01 · 108 阅读 · 0 评论 -
HDU1495
在AC的基础上,加入父节点,可以回溯到原点。从而观察整个倒可乐的过程。#include<iostream>#include<queue>#include<stack>#include<algorithm>using namespace std;int s, m, n;int mark[101][101][101];int flag;...原创 2019-09-05 13:21:58 · 114 阅读 · 0 评论 -
HDU1385
#include<iostream>#include<algorithm>using namespace std;int maze[55][55];int city[55];int path[55][55]; //路径int n; //城市数void input(){ int i, j, w; for (i = 1; i <= n; i++)...原创 2019-08-29 10:53:34 · 134 阅读 · 0 评论 -
Floyd模板
在网上看到的模板,记录下来。#include int main() { int e[10][10],k,i,j,n,m,t1,t2,t3; int inf=99999999; //用inf(infinity的缩写)存储一个我们认为的正无穷值 //读入n和m,n表示顶点个数,m表示边的条数 scanf("%d %d",&...转载 2019-08-29 08:43:24 · 167 阅读 · 0 评论 -
HDU1266(map嵌套)
C++的STL真的强大。#include<string>#include<iostream>#include<map>using namespace std;int main(){ int n; cin>>n; while(n--) { map<string,map<string,int> > a...原创 2019-04-18 17:28:16 · 134 阅读 · 0 评论 -
HDU1272(并查集)
#include<iostream>#include<stdio.h>using namespace std;int mark[100005];int f[100005];int flag;int find(int a){ int r=a; while(r!=f[r]) r=f[r]; int i=a; int j; while(i!=r)...原创 2019-04-22 10:57:56 · 96 阅读 · 0 评论 -
HDU1254(双BFS)
箱子每走一步,需要bfs搜索人是否能走到推箱子的位置。箱子可以走已经走过的位置,但不能在已经走过的位置走相同的方向,需要用mark[x][y][dir]三维数组标记。#include<iostream>#include<queue>#include<string.h>using namespace std;int m,n;int map[10][1...原创 2019-04-16 11:49:18 · 127 阅读 · 0 评论 -
HDU1044
这题要先用BFS求得每个点之间的最短路,然后用DFS就不会超时了。#include<iostream>#include<algorithm>#include<queue>using namespace std;int w,h,l,m;char maze[52][52];int mark1[52][52];int mark2[20];int v...原创 2019-01-25 09:10:04 · 299 阅读 · 0 评论 -
HDU1026
这题我用广搜+优先队列做的,而且每个节点都需要保存父节点,这样根据最后一个节点就可以把路径倒序输出。#include<iostream>#include<queue>#include<stack>using namespace std;int mark[102][102]; //标记已经走过的路径char maze[102][102]; ...原创 2019-01-13 17:03:13 · 189 阅读 · 0 评论