随笔分类 -  C 程序

摘要:过山车Time Limit: 1000/1000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 6265Accepted Submission(s): 2742Problem DescriptionRPG girls今天和大家一起去游乐场玩,终于可以坐上梦寐以求的过山车了。可是,过山车的每一排只有两个座位,而且还有条不成文的规矩,就是每个女生必须找个个男生做partner和她同坐。但是,每个女孩都有各自的想法,举个例子把,Rabbit只愿意和XHD或PQK做partner,Grass只 阅读全文
posted @ 2013-04-02 20:27 尔滨之夏 阅读(303) 评论(0) 推荐(0)
摘要:#include<stdio.h>#include<string.h>int main(){ int i,j,k,l,m1,m2,c,flag; int s1[1002],s2[1002],s3[2004]; //s1[],s2[]表示2乘数,s3[]表示结果 char line1[1002],line2[1002]; //用字符串保存数字 while(scanf("%s%s",line1,line2)!=EOF) { for(i=l=strlen(line1)-1;i>=0;i--) s1[... 阅读全文
posted @ 2013-04-02 20:25 尔滨之夏 阅读(222) 评论(0) 推荐(0)
摘要:题意:长度为n的Chocolate,为n份1,2,3...n,每操作一次假如是[i,j],则i到j的(包括i, 和j)被买完。要求输出每次操作能买的Chocolate有多少份。例如;6 41 2//可以买1,2 两份。4 4//可以买4一份。1 3//因为1,2已经买过了,只剩下3了,所以只能买3一份。1 4//1,2,3,4都买过了。所以输出0。#include <stdio.h>#include <string.h>const int maxn = 10000001;int find[maxn];//find[i]存储的是前一步指向的。int cal(int i){ 阅读全文
posted @ 2013-03-30 11:21 尔滨之夏 阅读(214) 评论(0) 推荐(0)
摘要:Ocean CurrentsTime Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1148 Accepted Submission(s): 382Problem DescriptionFor a boat on a large body of water, strong currents can be dangerous, but with careful planning, they can be harnessed to help the... 阅读全文
posted @ 2013-03-20 19:27 尔滨之夏 阅读(434) 评论(0) 推荐(0)
摘要:Problem DescriptionC国的死对头A国这段时间正在进行军事演习,所以C国间谍头子Derek和他手下Tidy又开始忙乎了。A国在海岸线沿直线布置了N个工兵营地,Derek和Tidy的任务就是要监视这些工兵营地的活动情况。由于采取了某种先进的监测手段,所以每个工兵营地的人数C国都掌握的一清二楚,每个工兵营地的人数都有可能发生变动,可能增加或减少若干人手,但这些都逃不过C国的监视。中央情报局要研究敌人究竟演习什么战术,所以Tidy要随时向Derek汇报某一段连续的工兵营地一共有多少人,例如Derek问:“Tidy,马上汇报第3个营地到第10个营地共有多少人!”Tidy就要马上开始计算 阅读全文
posted @ 2013-03-19 21:35 尔滨之夏 阅读(228) 评论(0) 推荐(0)
摘要:#include<cstdio>#include<cmath>#include<algorithm>#include<iostream>typedef struct Node{ double l; double r; bool operator < (const Node & a) const { return l < a.l; }}Qstr;Qstr q[1500];using namespace std;int main(void){ int n; int d; int res; int kase = 0; whil... 阅读全文
posted @ 2013-03-13 20:00 尔滨之夏 阅读(255) 评论(0) 推荐(0)
摘要:Problem Description某省自从实行了很多年的畅通工程计划后,终于修建了很多路。不过路多了也不好,每次要从一个城镇到另一个城镇时,都有许多种道路方案可以选择,而某些方案要比另一些方案行走的距离要短很多。这让行人很困扰。现在,已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离。Input本题目包含多组数据,请处理到文件结束。每组数据第一行包含两个正整数N和M(0<N<200,0<M<1000),分别代表现有城镇的数目和已修建的道路的数目。城镇分别以0~N-1编号。接下来是M行道路信息。每一行有三个整数A,B,X(0<=A,B<N,A! 阅读全文
posted @ 2013-03-12 19:25 尔滨之夏 阅读(347) 评论(0) 推荐(0)
摘要:Problem Description为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元,而市场有m种大米,每种大米都是袋装产品,其价格不等,并且只能整袋购买。请问:你用有限的资金最多能采购多少公斤粮食呢?Input输入数据首先包含一个正整数C,表示有C组测试用例,每组测试用例的第一行是两个整数n和m(1<=n<=100, 1<=m<=100),分别表示经费的金额和大米的种类,然后是m行数据,每行包含3个数p,h和c(1<=p<=20,1<=h<=200,1<=c<=20),分别表示每袋的价 阅读全文
posted @ 2013-03-06 19:34 尔滨之夏 阅读(271) 评论(0) 推荐(0)
摘要:DescriptionMarsha and Bill own a collection of marbles. They want to split the collection among themselves so that both receive an equal share of the marbles. This would be easy if all the marbles had the same value, because then they could just split the collection in half. But unfortunately, s... 阅读全文
posted @ 2013-03-05 18:48 尔滨之夏 阅读(284) 评论(0) 推荐(0)
摘要:分析:广搜,每个四位数作为一个状态,从每个状态扩展出其他的几种状态并累加步数之后加入队列。 1 #include <stdio.h> 2 #include <string.h> 3 #include <algorithm> 4 using namespace std; 5 6 int vis[10][10][10][10]; //标记数组 7 8 struct node 9 { 10 int step; 11 int num[4]; 12 }q[8000], tt, in, st, end; 13 int front,rear; 14 15 bool ... 阅读全文
posted @ 2013-03-04 19:36 尔滨之夏 阅读(352) 评论(0) 推荐(0)
摘要:1 #include<stdio.h> 2 #include<string.h> 3 4 const int max = 110; 5 6 int dp[max][max]; 7 int num[max]; 8 9 int Mult(int a, int b)10 {11 if (dp[a][b] > 0)12 {13 return dp[a][b];14 }15 if (a == b)16 {17 return 0;18 }19 int min = Mult(a+1, b) + num[a-1] ... 阅读全文
posted @ 2013-02-28 14:19 尔滨之夏 阅读(347) 评论(0) 推荐(0)
摘要:当数组长度p,q范围高达10000所以O(pq)的算法会超时。注意到序列中所有元素各不相同,因此可以把A串重新编号为1~p,例如:A={1754832},B={14356287} 把A重新编号后:A={1234567},B={14630752}其中0表示在A中没有出现过,因为没有出现过所以就不用考虑了,肯定不在最长公共子序列中。对于新的A,B序列只需求B的最长递增子序列即可。因为n的范围较大,所以需要用到O(nlogn)的方法求最长递增子序列(二分)。 1 #include<stdio.h> 2 #include<string.h> 3 4 const int MAX 阅读全文
posted @ 2012-12-10 22:28 尔滨之夏 阅读(277) 评论(0) 推荐(0)
摘要:与修路的那个题一样,只不过是需要将青蛙每次跳的重新存到数组里面。 青蛙过河Time Limit: 1000 MSMemory Limit: 65536 KTotal Submit: 14(10 users)Total Accepted: 11(10 users)Rating:Special Judge:NoDescription青蛙王国一年一度的游戏又开始了,这个游戏要求青蛙必须跳过河。河的宽度是L。河里有n块石头,这n块石头从河的一边笔直的连到另一边。青蛙只能踩着石头过河,如果它们掉... 阅读全文
posted @ 2012-12-07 18:58 尔滨之夏 阅读(458) 评论(0) 推荐(0)
摘要:动态规划的关键就是找到状态转移方程。本题的当前状态有三种情况,map[i-1][j], map[i][j-1], 以及行上能被改行整除的,判断一下就行。写的有点复杂了,还可以再优化的。 圈套Time Limit: 1000 MSMemory Limit: 32768 KTotal Submit: 5(4 users)Total Accepted: 5(4 users)Rating:Special Judge:NoDescriptionWd在回答了使者的问题之后,使者告诉他... 阅读全文
posted @ 2012-12-07 12:11 尔滨之夏 阅读(315) 评论(0) 推荐(0)
摘要:刚开始看这道题时感觉有很多的嵌套,(试了其他的方法不行后来才决定用递归)那就是递归了。本题关键是找到递归的关键点。由于当遇到“()”时"()"里面很可能还有“()”说明“()”这个括号有文章。对就是在“(”这个地方递归。以前递归只接触过数学方面的和深搜一类的,这种类型的递归还没想过,看来学一样东西还是要灵活的用,而灵活的用只能是多做题了。 1 #include<stdio.h> 2 #include<string.h> 3 4 void Change(int left, int right, char p[])//递归函数 5 { 6 for (in 阅读全文
posted @ 2012-12-06 12:24 尔滨之夏 阅读(273) 评论(0) 推荐(0)
摘要:给定一个无序的数列,由32位整数组成的,序列长度可达500000,现在通过不断的两两交换,把这个序列排成由小到大的有序序列,问交换的次数是多少。 1 #include<stdio.h> 2 #include<stdlib.h> 3 #define NN 500005 4 5 int a[NN]; 6 __int64 count; 7 8 void Merge(int data[], int l, int m, int r) 9 {10 int i = l;11 int j = m + 1;12 int k = 0;13 int *pd;14 pd =... 阅读全文
posted @ 2012-11-15 19:59 尔滨之夏 阅读(311) 评论(0) 推荐(0)
摘要:1 #include<stdio.h> 2 #include<stdlib.h> 3 #define MAX 1000010 4 5 int g_a[MAX]; 6 7 int pasition(int number[], int len, int left, int right) 8 { 9 int i = left;10 int j = right;11 number[0] = number[i];12 while (i < j)13 {14 while (i<j && number[j]>number[0])15 ... 阅读全文
posted @ 2012-11-15 18:49 尔滨之夏 阅读(250) 评论(0) 推荐(0)
摘要:1 #include<stdio.h> 2 #include<stdlib.h> 3 typedef struct Node 4 { 5 int data; 6 struct Node *next; 7 }CLNode; 8 void DeleCL(CLNode *lhead, int m) 9 {10 int i = 1;11 CLNode *p = lhead;12 CLNode *q = lhead;13 while (p != NULL)14 {15 if (i == m)16 {17 ... 阅读全文
posted @ 2012-11-12 18:42 尔滨之夏 阅读(274) 评论(0) 推荐(0)
摘要:Description输入n个整数,先按照数据输入的顺序建立一个带头结点的单链表,再输入一个数据m,将单链表中的值为m的结点全部删除。分别输出建立的初始单链表和完成删除后的单链表。Input第一行输入数据个数n;第二行依次输入n个整数;第三行输入欲删除数据m。Output第一行输出原始单链表的长度;第二行依次输出原始单链表的数据;第三行输出完成删除后的单链表长度;第四行依次输出完成删除后的单链表数据。Sample Input10562512336654712331212Sample Output10562512336654712331275625336654733 1 #include< 阅读全文
posted @ 2012-11-12 18:41 尔滨之夏 阅读(318) 评论(0) 推荐(0)
摘要:分两个栈,一个存运算符号,另一个存数字;判断符号的优先级,再进行计算。 表达式计算Time Limit: 1000 MSMemory Limit: 10240 KTotal Submit: 1(1 users)Total Accepted: 1(1 users)Special Judge:NoDescription输入一个中缀表达式,要求输出计算的结果,保留到小数点后4为位。表达式中的数均为非负数,可能为小数,不会出现-2,+2的情况,就是说不会有 1 + - 2、1 * -2、2*+2这样的情况。数字为整数或者带小数的形式... 阅读全文
posted @ 2012-11-05 20:26 尔滨之夏 阅读(314) 评论(0) 推荐(0)