算法
文章平均质量分 61
Ostrichcrab
这个作者很懒,什么都没留下…
展开
-
最大重叠区间的个数
只要将区间分隔成各个点,每个点有两个属性,一个是值,一个是标志(0起点,1止点),然后对这些点排序,最后,从头开始扫描排序的结果,遇到起点重叠个数加1,遇到止点重叠个数减1,并且记录好重叠个数的最大值。,因为算法时间主要消耗在排序上。摘抄自http://blog.csdn.net/s634772208/article/details/46492651 我是根据http://blog.csdn.ne...原创 2018-03-02 16:52:13 · 4695 阅读 · 0 评论 -
L2-024.部落
#include<cstdio>#include<set>#include<iostream>using namespace std;int f[10005];int findf(int x){ return x==f[x]?x:f[x]=findf(f[x]);}void Union(int a,int b){ int fa=...原创 2018-03-29 19:42:23 · 181 阅读 · 0 评论 -
L3-03
转自点击打开链接#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>#include<queue>using namespace std;#define maxn 1010int c[maxn],f[maxn];int findf(in...转载 2018-03-29 21:49:15 · 103 阅读 · 0 评论 -
L3-010
#include<cstdio>using namespace std;int tree[1<<20];int num;void BST(int a){ if(tree[a]==0) tree[a]=num; else if(tree[a]<num) BST(a<<1); else ...转载 2018-03-29 22:50:09 · 85 阅读 · 0 评论 -
L2-020.功夫传人
转自点击打开链接#include<bits/stdc++.h>using namespace std;vector<vector<int>>v;int n,k;double z,r,result=0.0;bool vis[100010];void dfs(int index,double power){ if(vis[index]==tru...转载 2018-03-30 10:11:46 · 144 阅读 · 0 评论 -
L2-003 月饼
#include <iostream>#include<algorithm>#include<cstdio>using namespace std;struct mooncake{ float mount; float price; float unit;};int cmp(mooncake a,mooncake b){ ...转载 2018-03-24 12:00:06 · 116 阅读 · 1 评论 -
L2-004这是二叉搜索树吗
转自点击打开链接分析:假设它是二叉搜索树,一开始isMirror为FALSE,根据二叉搜索树的性质将已知的前序转换为后序,转换过程中,如果发现最后输出的后序数组长度不为n,那就设isMirror为true,然后清空后序数组,重新再转换一次(根据镜面二叉搜索树的性质),如果依旧转换后数组大小不等于n,就输出no否则输出yes#include<cstdio>#include<vec...转载 2018-03-24 12:04:41 · 124 阅读 · 0 评论 -
L2-002 链表去重
转自点击打开链接#include <iostream>#include<cstdio>#include<algorithm>using namespace std;const int maxn=100000;struct NODE{ int address; int key; int next; int num;}node[m...转载 2018-03-24 20:25:06 · 95 阅读 · 0 评论 -
L2-005集合相似度
转自点击打开链接#include<set>#include<vector>#include<cstdio>using namespace std;int main(){ int n,m,k,temp,a,b; scanf("%d",&n); vector<set<int>>v(n); fo..转载 2018-03-24 22:05:25 · 231 阅读 · 0 评论 -
L2-007
转自点击打开链接之前写的时候在while后面多加了个;一直超时,心态爆炸;;;;;;;;;;;#include<cstdio>#include<algorithm>using namespace std;struct DATA{ int id,fid,mid,num,area; int cid[10]; }data[1005];struct nod...转载 2018-03-25 19:27:51 · 107 阅读 · 0 评论 -
L2-008
转自https://www.liuchuo.net/archives/2102#include<iostream>using namespace std;int main(){ string s; getline(cin,s); int maxvalue=0,temp; int len=s.length(); for(int i=...转载 2018-03-25 21:00:06 · 107 阅读 · 0 评论 -
L2-009
转自点击打开链接#include<cstdio>#include<vector>#include<algorithm>using namespace std;struct node{ int id,total,getnum;};bool cmp1(node a,node b){ if(a.total!=b.total) ret...转载 2018-03-25 21:18:27 · 106 阅读 · 0 评论 -
L2-010
转自点击打开链接#include<cstdio>#include<vector>using namespace std;vector<int>fri;int enemy[101][101];int findfri(int x){ while(x!=fri[x]) x=fri[x]; return x;}void Union(i...转载 2018-03-25 22:26:11 · 81 阅读 · 0 评论 -
L2-011
转自点击打开链接#include<csdtio>#include<vector>using namespace std;vector<int>in,pre,level(10000,-1);void levelorder(int root,int start,int end,int index){ if(start>end) return;...转载 2018-03-25 22:42:19 · 94 阅读 · 0 评论 -
L2-021
转自点击打开链接#include<iostream>#include<map>#include<cmath>#include<cstdio>#include<algorithm>using namespace std;struct people{ string name; int k,num;}s[100]...转载 2018-03-25 23:10:17 · 99 阅读 · 0 评论 -
zoj 4019 动态规划
#include<cstdio>#include<algorithm>using namespace std;typedef long long ll;const int MAXN=2020;int k1,k2,c;int n,m;int a[MAXN],b[MAXN];ll prea[MAXN],preb[MAXN];ll dp[MAXN][MAXN];...原创 2018-04-08 17:39:09 · 197 阅读 · 0 评论 -
L2-012
转自点击打开链接#include<cstdio>#include<vector>#include<cstring>using namespace std;vector<int>v;int n;void updajust(int i){ if(i==1) return; while(i!=1){ if(v[...转载 2018-03-26 19:04:30 · 110 阅读 · 0 评论 -
L2-013
转自点击打开链接#include<cstdio>#include<algorithm>#include<cstring>using namespace std;bool vis[510];int e[510][510],n,m,k;void dfs(int node){ vis[node]=true; for(int i=0;i&l...转载 2018-03-26 20:49:22 · 80 阅读 · 0 评论 -
L2-014 列车调度 STL set
转自点击打开链接#include<iostream>#include<set>using namespace std;int main(){ int n,t; cin>>n; set<int >s; s.insert(0); for(int i=0;i<n;i++){ cin>...转载 2018-03-26 21:48:48 · 105 阅读 · 0 评论 -
L2-015
转自点击打开链接#include<cstdio>#include<vector>#include<algorithm>using namespace std;int cmp1(double a,double b){return a>b;}int main(){ int n,k,m; scanf("%d%d%d",&n,&...转载 2018-03-26 22:07:07 · 148 阅读 · 0 评论 -
计蒜客 练习题 日期计算 date calculation
Last year, Zhao Yuehan and Lu Ran are in love. One time, Lu Ran was teaching C language for Zhao Yuehan. But, Zhao Yuehan suddenly asked Lu Ran a question:’How long have we been in love?’ Surely, Lu R...原创 2018-04-14 14:38:16 · 248 阅读 · 0 评论 -
韩梅梅的抽象画 图论 连通度 dfs
美术课上,老师让大家画动物,韩梅梅画了一只章鱼,如果老师能认出这是一只章鱼,就会奖励韩梅梅一朵小红花。现在韩梅梅拿着她的画向你求助,她想知道她的画能不能得到一朵小红花。美术老师对章鱼的定义如下:章鱼有一个圆圆的身体和许多触须。为了简化问题,我们将韩梅梅的画抽象成一个含n个顶点,m条边的无向图G。如果G含三个或以上的有根树,且他们的根在同一个简单环上,那么G可以被认作是章鱼。题目输入保证没有重边和自...原创 2018-04-14 14:42:22 · 111 阅读 · 0 评论 -
a man who has a iron bone 公共子序列
"我王境泽就是饿死,死外边,从这里跳下去,不会吃你们一点东西""嘿嘿,真香"meopass仔细研究了他的行为,发现了如下规律:如果wjz的动作能够组成"↓↓↓↑↑←↑→"这个行为,他们他就会说出 "真香",否则他就会"饿死,死外边,从这里跳下去"。现在给出他的行动方式,问你能否从他的行动中看出他能否吃上饭。如果吃上了,输出"zhen xiang!",否则输出"wangjingze原创 2018-04-14 14:46:01 · 113 阅读 · 0 评论 -
简单快速幂 欧拉函数降幂
点击打开链接给a,b,c三个数字,求a的b次幂对c取余Input多组样例循环输入,每一组输入a,b,c (1<=a,c<=10^9,1<=b<=10^1000000).Output对于每一组a,b,c,输出a^b%c样例输入1 1 12 2 2139123 123124121241452124412124 123121样例输出008984降幂公式:#include&...原创 2018-04-14 15:05:49 · 1376 阅读 · 0 评论 -
卡牌游戏 逻辑题
韩梅梅和她的朋友李雷玩卡牌游戏。桌子上有成n堆卡片。每张卡片上都有一个正整数,表示该卡片的价值。玩家轮流取牌,韩梅梅先手。每个回合,韩梅梅从任意一个非空堆的顶部取牌,李雷从任意一个非空堆的底部取牌。两个人都想最大化他所拿卡片的总价值。当所有堆为空时,游戏结束。假设李雷和韩梅梅都采取最佳策略,输出最后的赢家。Input:第一行包含一个整数N(1 ≤ N ≤ 100),表示有n堆卡牌。接下来的n行每行...原创 2018-04-14 17:32:39 · 3666 阅读 · 5 评论 -
zoj 4020 bfs
#include<cstdio>#include<vector>#include<queue>using namespace std;const int maxn=1e5+4;struct Node{ int x,y; int dis;};vector<int> vec[maxn];vector<bool>...原创 2018-04-10 00:00:48 · 119 阅读 · 0 评论 -
hdu 2045RGB涂色
#include<cstdio>using namespace std;int main(){ long long dp[55]; int n; dp[1]=3; dp[2]=dp[3]=6; for(int i=4;i<52;i++) dp[i]=dp[i-1]+2*dp[i-2]; while(scanf(...原创 2018-04-02 18:50:18 · 128 阅读 · 0 评论 -
hdu 2046牌的摆放方式
#include<cstdio>using namespace std;int main(){ long long dp[55]; int n; dp[1]=1; dp[2]=2; dp[3]=3; for(int i=4;i<52;i++) dp[i]=dp[i-1]+dp[i-2]; while(s...原创 2018-04-02 19:04:32 · 82 阅读 · 0 评论 -
hdu 2047 排列
#include<cstdio>using namespace std;int main(){ long long dp[55]; int n; dp[1]=3; dp[2]=8; dp[3]=22; for(int i=4;i<52;i++) dp[i]=2*dp[i-1]+2*dp[i-2]; wh...原创 2018-04-02 21:16:46 · 193 阅读 · 0 评论 -
牛客网 水题 递推找规律
链接:https://www.nowcoder.com/acm/contest/91/E来源:牛客网小Y买了很多苹果,但他很贪吃,过了几天一下就吃剩一只了。每一天小Y会数出自己的苹果个数X,如果X是偶数,他就会吃掉只苹果;如果X是奇数,他就会吃掉只苹果。 你知道现在苹果只剩下一只,并且小Y是在N天前买的苹果,现在小Y想知道在那天买了多少苹果。当然,可能性不止一种,你只需要求出他买的苹果数量...原创 2018-04-15 16:33:52 · 258 阅读 · 0 评论 -
牛客网 玩泥巴 Wasserstein Distance
最近对抗生成网络(GAN)很火,其中有一种变体WGAN,引入了一种新的距离来提高生成图片的质量。这个距离就是Wasserstein距离,又名铲土距离。 这个问题可以描述如下: 有两堆泥土,每一堆有n个位置,标号从1~n。第一堆泥土的第i个位置有ai克泥土,第二堆泥土的第i个位置有bi克泥土。小埃可以在第一堆泥土中任意移挪动泥土,具体地从第i个位置移动k克泥土到第j个位置,但是会...原创 2018-04-15 17:12:39 · 523 阅读 · 0 评论 -
最长递增子序列LIS
1.复杂度O(n^2)算法 lis[i]保存的是以arr[i]为结尾的数组序列的最长递增子序列长度例如,arr {10,22,9,33,21,50,41,60,80} LIS的长度是6和 LIS为{10,22,33,50,60,80}。记忆化搜索int list(int arr[],int n) { int i,j,max; max = 0; for(i...原创 2018-04-15 17:18:41 · 114 阅读 · 0 评论 -
牛客网 1+2=3?
链接:https://www.nowcoder.com/acm/contest/91/F来源:牛客网做的时候数据太大,只能过50%的数据……先把题存下来以后再补小Y在研究数字的时候,发现了一个神奇的等式方程,他屈指算了一下有很多正整数x满足这个等式,比如1和2,现在问题来了,他想知道从小到大第N个满足这个等式的正整数,请你用程序帮他计算一下。 (表示按位异或运算) 输入描述:第一行是一个...原创 2018-04-15 20:53:20 · 228 阅读 · 0 评论 -
河南省赛 导弹发射 lis
导弹发射时间限制:1000 ms | 内存限制:65535 KB难度:4描述Alpha 机构研发出一种新型智能导弹,它能够在雷达检测到的区域内,选择一条前进的路径, 击破路径上所有的目标物。 雷达位于(0,0)处,它能够检测到两条射线之间的区域(不妨设在第一象限)。 导弹一开始置放在(0,0)处,它可以在雷达能检测到的区域内先选择一个目标物击破,然后 再继续前进,选择另一个目标物击破。注意,导...原创 2018-04-15 22:28:50 · 178 阅读 · 0 评论 -
zoj 4016 list操作
#include<cstdio>#include<list>using namespace std;const int maxn=3e5+5;list<int>li[maxn]; //创建空listint main(){ int ci,n,q,m,s,v,t,i; scanf("%d",&ci); while(ci--...原创 2018-04-10 23:13:46 · 292 阅读 · 0 评论 -
hdu 1116&&uva10129 欧拉道路
#include<cstring>#include<iostream>#include<cstdio>#include<cmath>#define maxn 30using namespace std;int vis[maxn],N,T,f[maxn],in[maxn],out[maxn];void init(){ for(i...原创 2018-04-03 21:02:31 · 103 阅读 · 0 评论 -
hdu 2048 dp 错排公式
#include<cstdio>using namespace std;int main(){ int c,n,j; double sum,i,dp[21]; dp[1]=0; dp[2]=1; printf("%f\n",dp[2]); for(j=3;j<21;j++) dp[j]=(j-1)*(dp[j...原创 2018-04-03 22:10:06 · 140 阅读 · 0 评论 -
本以为是分治法 谁知道
This day, Xcx gets a bar of chocolate which can be divided into n*m rectangles. But the chocolate is bitten by Dby, one is the upper left corner while one is the lower right corner. So Xcx thinks if e...原创 2018-04-16 21:49:36 · 95 阅读 · 0 评论 -
L2-16
转自点击打开链接出现在输入输出函数中的%*c ,作用是在输入或输出时,跳过一个变量,例如:void main(){ int i=1,j=2,k=3; printf("%d,%*d,%d\n",i,j,k,i);//遇到%*d,就把j跳过了,输出k,故后面应该放4个变量}程序的输出结果是1, 3,1 (如果出现跳过变量的情况,跳过的变量用空格代替,因此3前面多一个空格;#include<b...转载 2018-03-28 19:57:29 · 88 阅读 · 0 评论 -
L2-017
转自点击打开链接#include<bits/stdc++.h>using namespace std;int main(){ int n,sum=0,half=0; scanf("%d",&n); vector<int>v(n); for(int i=0;i<n;i++){ scanf("%d",&...转载 2018-03-28 20:11:56 · 78 阅读 · 0 评论