wikioi p1000-1099
YeasonWu
这个作者很懒,什么都没留下…
展开
-
wikioi p1083 Cantor表
这题应该说也是noip普及组的一道原题,题目有点烦,我还真没做过,分享一下标程:var n,i,a,b:longint;flag:boolean;function w(i:longint):longint;var j:longint;begin w:=0; for j:=1 to i do w:=w+j;end;begin read(n); for i原创 2013-08-24 11:43:47 · 503 阅读 · 0 评论 -
wikioi p1018 单词接龙
依然是字符串#include#include#include#includeint g_n,g_maxLen,g_mark[21]={0};char g_start,g_words[21][50],g_word[1000];void inPut(){int i;scanf("%d",&g_n);for(i=1;i<=g_n;i++){scanf("\n%s",g_wo原创 2013-08-26 13:27:04 · 1060 阅读 · 0 评论 -
wikioi p1078 最小生成树
恩,最小生成树。用的克鲁斯卡的算法,善用并查集。#include#include#include#includeusing namespace std;const int MAX_N =101;struct node { int s,t,d;}R[MAX_N*MAX_N]; int N;int M;int ans=0;int T[MAX_N];int cmp(c原创 2013-08-26 20:42:22 · 513 阅读 · 0 评论 -
wikioi p1052 地鼠游戏
题目大意 给出N个任务以及每个任务的奖励W和完成期限T,要求输出获得的最大奖励。考察算法 贪心 并查集 二叉堆算法一这道题目我们很容易想到一个贪心策略:每次让奖励最多的任务尽量准时完成。这样我们可以先把这些任务按照奖励的数目进行排序,把大的排在前面,先进行放置。假如罚款最多的一个任务的完成期限是T,我们应该把它安排在哪个时段完成呢?应该放在第T个时段,因为放在1~T任意一个位置,效果都原创 2013-08-27 18:03:29 · 825 阅读 · 0 评论 -
wikioi p1041 Car的旅行路线
题目很烦。刷pascal的。program aa;const maxlongin=1000000000;var k,n,s,t,b,e,i,j,cc,z,xmid,ymid,x4,y4:longint; ans:real; map:array[1..100,1..100] of real; dis:array[1..500] of real; x,y:arr原创 2013-09-01 10:28:58 · 828 阅读 · 0 评论 -
wikioi p1077 多源最短路
题目简单邻接矩阵+dijkstra#include#include#include#include#includeusing namespace std;const int MAX_N=101;int r[MAX_N][MAX_N];int have[MAX_N];int d[MAX_N][MAX_N];int N;int M;int init(){ sc原创 2013-09-01 10:31:16 · 745 阅读 · 0 评论 -
wikioi p1073 家族
叫亲戚的话,大家都应该知道了吧~#include#includeusing namespace std;const int MAX_N = 5001;int R[MAX_N];int N,M,P;int findroot(int t){ if (!R[t]) return t; else return R[t]=findroot(R[t]);原创 2013-08-31 17:03:25 · 595 阅读 · 0 评论 -
wikioi p1081 线段树练习 2
前缀和可过。#includeusing namespace std;const int MAX_N = 100001;int A[MAX_N];int T[MAX_N];int N,Q;int init(){ int i; scanf("%d",&N); for (i=1;i<=N;i++) scanf("%d",&A[i]);}int w原创 2013-08-31 16:51:45 · 751 阅读 · 0 评论 -
wikioi p1079 回家
宋老师讲过。#include#include#include#include#includeusing namespace std;const int MAX_N=101;int r[MAX_N][MAX_N];int have[MAX_N];int d[MAX_N];int p;int init(){ scanf("%d",&p); int i;原创 2013-09-01 10:34:36 · 604 阅读 · 0 评论 -
wikioi p1039 数的划分
叶老师说过,记忆化搜索。#include#includeusing namespace std;const int MAX_N = 201;int f[MAX_N][MAX_N];int work(int n,int k){ if (f[n][k]) return f[n][k]; if (n<k)return 0; if (n==k) return 1;原创 2013-08-26 13:22:00 · 606 阅读 · 0 评论 -
wikioi p1099 字串变换
还是字符串,继续贴pascal。还是对不起咯~博客正在慢慢写。目前的题目难度的确不是很高。但是难得我也不会。所以我会发一些有难度但是不至于我们做不出来的题目。(ms.27的朋友们)type jj=record s:string; d:longint;end;varhead,tail:array[1..2] of longint;q:array[1..原创 2013-08-26 13:26:11 · 679 阅读 · 0 评论 -
wikioi p1040 统计单词个数
本人最讨厌字符串,题目都没怎么看。我估计让我写我自己也不一定都写得对这次对不起咯,我也不会啊~pascal代码。const maxle=202; maxk=40; maxs=6;type strr=string[maxle];var f:array[0..maxle,0..maxk]of integer; g:array[0..maxle,0..maxle]原创 2013-08-26 13:24:01 · 629 阅读 · 0 评论 -
wikioi p1012 最大公约数和最小公倍数问题
枚举P,这样从A到B。 简单的数论当中有:两个数字的最小公倍数*两个数字的最大公约数=两个数字的乘积。 这里做一个简单的推论:若A=p*q,B=p*r; 且q 和 r互质 那么(a,b)= p; [a,b]=p*q*r; 则(a,b)*[a,b]=p*q*r*p=A*B;#includeusing原创 2013-08-24 11:48:30 · 637 阅读 · 0 评论 -
wikioi p1011 数的计算
这题不需要考虑重复情况,可以说就是简单的记忆化搜索。 代码如下:#includeusing namespace std;const int MAX_N = 1001;int f[MAX_N];int N;int work(int t){ if (t==0) return 1; if (f[t]) return f[t]; int i;原创 2013-08-24 12:06:50 · 597 阅读 · 0 评论 -
wikioi p1000 A+B问题
#includeusing namespace std;int main(){ int a,b; scanf("%d %d",&a,&b); printf("%d",a+b); return 0;}原创 2013-08-24 12:19:21 · 478 阅读 · 0 评论 -
wikioi p1098 均分纸牌
首先这题分类在贪心下面,当然我们也可以通过一定的方式得到它的正确性: 如果从A向B移动R个纸牌,也就相当于从B向A移动了-R个纸牌。 那么假设有纸牌Ai Aj Ak 当然我们可以实现扫描一遍总的纸牌数,则可以得到每一堆应该拥有的纸牌个数是ad=sum/N 若Ai-ad=Xi 则分别需要移动Xi Xj Xk(xi,xj,原创 2013-08-24 22:18:31 · 628 阅读 · 0 评论 -
wikioi p1014 装箱问题
背包问题DP,可以把物品的体积作为价值。#include#includeusing namespace std;const int MAX_V = 20001;const int MAX_N = 31;int V,N;int v[MAX_N];int f[MAX_V];int init(){ int i; scanf("%d %d",&V,&N); f原创 2013-08-25 12:30:57 · 500 阅读 · 0 评论 -
wikioi p1044 拦截导弹
就是基本模型,没有什么好说的。#include#include#includeusing namespace std;const int MAX_N = 10001;int A[MAX_N];int f[MAX_N];int r[MAX_N];int N=0;int fans,rans;int init(){ int i; while(cin>>A[++N]); N原创 2013-08-25 12:34:26 · 557 阅读 · 0 评论 -
wikioi p1010 过河卒
这题我为了图省事,直接在原先的dfs上,加了一个记忆化。#include#include#includeusing namespace std;const int MAX_N = 21;const int MAX_M = 9;bool map[MAX_N][MAX_N];int f[MAX_N][MAX_N];int dx[]={1,1,-1,-1,2,2,-2,-2,0};原创 2013-08-25 13:15:25 · 636 阅读 · 0 评论 -
wikioi p1048 石子归并
最简单的区间型动态规划。 为了方便起见,做了一个显而易见的操作,S数组,S[N]记录从1到N的和。 则从I到J的和为S[J]-S[I-1]#include#include#include #includeusing namespace std;const int MAX_N = 101;int f[MAX_N][MAX_N];int R[MAX_N原创 2013-08-25 12:55:57 · 498 阅读 · 0 评论 -
wikioi p1080 线段树练习
暴力枚举可过。#includeusing namespace std;const int MAX_N = 100000;int A[MAX_N];int P[MAX_N];int N;int M;int main(){ scanf("%d",&N); int i; for (i=1;i<=N;i++) scanf("%d",&A[i]),P[i]=P原创 2013-08-31 16:50:59 · 519 阅读 · 0 评论