poj
zyq_20030305
der
展开
-
poj3250翻译+题解(单调栈)
#include<stdio.h>int a[80005],f[80005];int main(){ int n,i,j,top=1; long long ans=0; scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&a[i]); f[1]=a[1]; for(i=2;i<=n;i++) { if(f[top]>a[i]) f[++top]=a[i],ans+=top-1; else { while(f[top]<=原创 2017-08-13 22:21:37 · 315 阅读 · 0 评论 -
poj2478法里序列
#include<stdio.h>long long a[1000001];long long b[1000001];int main(){ int n,i,j; a[1]=1; for(i=2;i<1000001;i++) a[i]=i; for(i=2;i<1000001;i++) { if(a[i]==i) { for(j=i;j<1000001;j+=i) { a[j]=a[j]*(i-1)/i; } } } for(i=2;i<100原创 2017-09-02 08:54:20 · 293 阅读 · 0 评论 -
poj2486 Apple Tree 题解
#include<stdio.h>#include<string.h>int a[201],b[201];struct Edge{ int to,next,len;};Edge edge[401];int head[201],idx,n,m;int f[2][201][201];int max(int a,int b){ if(a>b) return a; return b;}void dfs(int from,int p){ for(int i=head[p];i;i原创 2017-08-15 23:11:07 · 272 阅读 · 0 评论 -
poj2395 Kruskal题解(Prim好像过不了)
#include<stdio.h>#include<math.h>#include<algorithm>using namespace std;struct Way{ int a,b,val;};Way w[100001];int f[2001],s[2001],home[2001];int idx;int n,m,t,how,a,b,c;bool com(const Way &a,const Way &b){ return a.val<b.val;}int find(int原创 2017-08-15 14:42:19 · 233 阅读 · 0 评论 -
poj2349 Kruskal题解
Kruscal:Arctic Network题目大概意思就是给你n个点的坐标,有几个点不用花钱,求最小生成树(不用花钱的)费用.#include#include#include#includeusing namespace std;int x[1001],y[1001],dep;struct Dis{ int val,from,to;};Dis dis[200000原创 2017-08-13 10:47:07 · 323 阅读 · 1 评论 -
poj1330,JDOJ3055O(nlogn)做法
#include<stdio.h>int f[100001][18];//倍增,f[i][j]表示以i为起点跳2^j步的父亲.int level[100001];//表示i点的层数是多少int ans[100001][50];//ans[i][j]表示第i点有第j个儿子.int idx[100001],tmp;int dfs(int i){ level[i]=level[f[i][0]]+1;//倍增更新层数 for(int j=1;j<17;j++) f[i][j]=f[f[i][j-原创 2017-08-14 10:34:09 · 266 阅读 · 0 评论