poj
欲买桂花同载酒终不似少年游
有事联系我
1045398835@qq.com
展开
-
poj1050最大子段和的二维版
#include <iostream>#include <cstring>#include <algorithm>//我一定会让你们后悔的using namespace std;int b[105][105];int dp[105];int MaxSum(int n,int dp[]) //求最大子段和{int sum = 0,b = 0;f...原创 2019-04-29 18:02:27 · 154 阅读 · 0 评论 -
poj1861 Kruskal 94ms
看discuss发现样例有问题#include<cstdio>#include<algorithm>#define INF 0x3f3f3f3fusing namespace std;struct Edge{ int l,r; int val;} edge[15055],res[1055];bool cmp(const Edge x,cons...原创 2019-07-22 11:36:31 · 116 阅读 · 0 评论 -
poj Kruskal 32ms
Kruskal不用考虑重边,但要考虑是否这棵树是MST,即是否包含所有点#include<cstdio>#include<algorithm>#define INF 0x3f3f3f3fusing namespace std;typedef long long ll;struct Edge{ int l,r; int val;} edge[20...原创 2019-07-22 14:22:48 · 78 阅读 · 0 评论 -
poj2367 0ms
#include<cstdio>#include<queue>#include<cstring>using namespace std;//拓补排序入门水题int G[105][105];int in[105];int ans[105];queue<int>q;void toposort(int n){ int tmp,c...原创 2019-07-26 13:23:01 · 117 阅读 · 0 评论 -
poj1611 并查集基础 0ms
方法一: 16ms#include<cstdio>#define maxn 30000using namespace std;int tree[maxn+5];//并查集的树int sum[maxn+5];//嫌疑人数void init(int n) //并查集的初始化{ for(int i = 0; i<n; ++i) { tree...原创 2019-07-22 22:20:02 · 71 阅读 · 0 评论 -
poj2585 157ms
#include<cstdio>#include<cstring>#define INF 0x3f3f3f3fusing namespace std;//MST,prim//MST找最大权值int matrix[505][505];int dis[505];bool vis[505];int t,n,Min,tmp;void prim(){ f...原创 2019-07-23 14:37:05 · 128 阅读 · 0 评论 -
poj1458 LCSub 0ms 164K
没啥好说的 ,LCSub问题直接上代码#include<cstdio>#include<cstring>using namespace std;//LCSub问题,水题,滚动数组优化空间int main(){ char str[1005],str1[1005]; int dp[2][1005]; int n,m; while(~s...原创 2019-07-27 21:37:50 · 85 阅读 · 0 评论 -
poj3264 1641ms interval tree
#include<cstdio>#include<algorithm>#include<cstring>using namespace std;/*Interval Tree 入门第一题 *虽然是按照讲义一步步来的,但感觉也学到了很多 *这两天多写写线段树的题目。 *区间树用途:区间更新,区间查询 *过几天整理一份线段树的文章出来 */con...原创 2019-08-12 21:31:39 · 99 阅读 · 0 评论 -
poj1988 266ms 并查集
附本人有关poj的代码链接(内含分类):https://blog.nowcoder.net/hyw#include<cstdio>using namespace std;//说难不难,说简单不简单,就是并查集的处理,额外的两个数组是关键//解决并查集有关问题时,如何利用辅助数组记录节点与根节点的关系是解题的关键const int N = 3e4;int father[N+...原创 2019-08-28 20:10:02 · 188 阅读 · 0 评论 -
poj1182 266ms 并查集
没有大佬那么厉害的可以直接得出结论,只能把情况都列出来,其实一共只有18种情况,所以不妨头脑风暴一次,然后稍加整理(先根据d的值分类,再根据rank[a]的值进行分类)规律就显然了。详细阐述下整理部分吧。首先把d=1,2,这是两种情况,然后细分,例如,当d=1,把rank[a],rank[b],rank[x]的关系列出来,其实只有9种可能,所以一共是233=18种可能。为了简化书写让a代替r...原创 2019-08-29 18:03:52 · 85 阅读 · 0 评论 -
poj2236 938ms 并查集
#include<cstdio>using namespace std;//把可以连通的放到一个集合,然后再判断两台机子是不是在一个集合const int N = 1e4;int father[N+5];bool vis[N+5];int d;struct Node{ int x; int y;} computers[N+5];void init(i...原创 2019-08-30 18:02:47 · 90 阅读 · 0 评论 -
poj1287 16ms prim
#include<cstdio>#include<cstring>#include<algorithm>#define INF 0x3f3f3f3fusing namespace std;int matrix[105][105];bool vis[105];int dis[105];int n,r,ans,Min,tmp;void prim()...原创 2019-07-21 14:00:21 · 81 阅读 · 0 评论 -
poj1251 0ms scanf
使用了scanf输入,之前RE,看了discuss之后才发现,行末可能有多个空格,所以要循环getchar()附代码:#include<cstdio>#include<cstring>#define INF 0x3f3f3f3fusing namespace std;int n,ans=0;int Min,tmp;int matrix[100][100];...原创 2019-07-20 23:20:02 · 91 阅读 · 0 评论 -
poj1363 栈的简单应用 63ms
刘汝佳紫书原题#include<cstdio>#include<stack>using namespace std;//栈的简单应用//两种情况A->C,C->B,int main(){ int n,A,B; bool f = true; int rail[1005]; stack<int>s; ...原创 2019-07-25 10:37:53 · 215 阅读 · 0 评论 -
poj1218
所有的数都在√n*√n 的正方形中,所以只需要算出对角线的长度 因为对角线上的数都是完全平方数,对角线上的数的个数便是√n 例如100 有1,4,9,16,25,36,49,64,81,100.个 如果√n不是整数只需要向下取整就好,因为取不到n 就例如5的话只有1,4.有不对之处希望指正.#include<iostream>#include<cmath>using...原创 2019-05-11 20:54:11 · 166 阅读 · 0 评论 -
poj3750 简单模拟
直接模拟就好,加一个标志数组表示此人是否被挑出 #include<cstdio>#include<cstring>using namespace std;char kids[100][20];bool flag[100]={false};//找规律int main(){ int n,w,s; scanf("%d",&n);...原创 2019-05-28 20:40:22 · 122 阅读 · 0 评论 -
poj 2262 哥德巴赫猜想(埃筛法)
#include<cstdio>#include<bitset>using namespace std;#define MAXN 1000000//素数打表 水题bitset<MAXN+5> Prime;void is_prime(){ for(int i = 2;i<=MAXN;++i) { if(!Prim...原创 2019-06-12 20:34:57 · 216 阅读 · 0 评论 -
poj2299 逆序数对,归并排序
#includeusing namespace std;long long int cnt = 0;void merge_sort(int *A,int left,int right,int *T){if(right-left>1){int mid = left+ (right-left)/2;int p = left,q = mid,i = left;merge_sort...原创 2019-06-21 17:34:47 · 112 阅读 · 0 评论 -
poj3619 推公式
#include<cstdio>#include<cmath>using namespace std;int main(){ int n,k,now; double ans; int s,t,r,tmp,x; scanf("%d%d",&n,&k); while(k--) { scanf...原创 2019-07-13 17:53:48 · 107 阅读 · 0 评论 -
poj1007
#include<cstdio>#include<algorithm>#include<cstring>using namespace std;//逆序数排序struct Node{ int cnt; char str[105];} DNA[500];bool cmp(Node &A,Node &B){ r...原创 2019-07-13 21:25:35 · 86 阅读 · 0 评论 -
poj3984 bfs开始的地方。保存路径难点
#include<cstdio>using namespace std;struct Node{ int x;//当前结点的坐标 int y;//当前结点的坐标 int pre;//前驱} q[200];bool vis[10][10];//是否访问int way[4][2]= {{0,-1},{0,1},{-1,0},{1,0}}; //上下左右四...原创 2019-07-15 11:15:15 · 81 阅读 · 0 评论 -
poj1321 dfs 0ms
#include#includeusing namespace std;bool matrix[10][10];bool row[10];//行有无int ans = 0,n,k,cnt = 0;void dfs(int r){if(cnt==k){ans++;return;}if(r>=n||(cnt+n-r)<k) return;//剪枝直接0ms,未加后面...原创 2019-07-19 22:07:37 · 83 阅读 · 0 评论 -
poj1979 bfs
#include<cstdio>#include<queue>#include<cstring>using namespace std;//简单bfs开始把行列搞错了struct Node{ int x; int y;//坐标 int cnt;//步数 Node(int a,int b,int c):x(a),y(b)...原创 2019-07-20 13:58:11 · 116 阅读 · 0 评论 -
poj1258 prim算法
#include<cstdio>#include<cstring>#define INF 0x3f3f3f3fusing namespace std;//prim算法,没有很难,再看看就好了int matrix[105][105];int dis[105];bool vis[105];int n;void prim(){ memset(vis,0...原创 2019-07-20 17:26:24 · 163 阅读 · 0 评论 -
poj1597 裴蜀定理
#include<cstdio>#include<cstring>using namespace std;/*这道题其实可以转化成裴蜀定理: ax+by = 1; 题意转化成数学知识就是:ax%y=m,m要取到0-(y-1)的所有值,其中x是step,y是mod,ax表示x的整数倍,因为seed(0)=0 该式就等价于ax+by=m,很明显,m可以取到...原创 2019-09-05 20:10:14 · 165 阅读 · 0 评论