IT民工
加油!
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 29 下一页
摘要: 这道题要求生成给出字符串的下一个字典序字符串,首先我们先判断是否存在这样的一个字符串,如果一个字符串的前一个字符总是比后一个字符大的话,那么是不存在下一个字典序的。我们从后面开始查找,直到找到一个前面的字符比后面的小,然后在找到的这个字符到字符串结尾的区间做变换从后往前,首字符和比它大的字符做交换,交换的最后结果是找到了比首字符大一点的字符,然后将该区间内除首字符的其他字符按字典序排序。即找到这个区间内下一个首字符的最小字典序。不用库函数的写法:#include<cstdio>#include<cstring>#include<cstdlib>char s[ 阅读全文
posted @ 2012-01-14 22:13 找回失去的 阅读(1152) 评论(0) 推荐(0)
摘要: 这道题要计算的是最长的有牛被挤奶的时间和最长的没有牛被挤奶的时间。首先用结构体存储每头牛的起止时间。然后按照开始时间升序排序。定义一个cur的结构体表示当前工作的起止时间,t =cur.end - cur.begin;代表的是工作的时间,然后当milk[i].begin > cur.end时,一段连续的工作时间被终止了,则t=cur.begin-milk[i].end是一段没有工作的时间。每计算出一段时间就和当前的最大时间比较,然后更新最大时间。/*ID:yucept21LANG:C++TASK:milk2*/#include<cstdio>#include<cstri 阅读全文
posted @ 2012-01-14 15:05 找回失去的 阅读(157) 评论(0) 推荐(0)
摘要: 这道题要计算将项链切断,然后从两端收集的相同的颜色的珠子数,两端的颜色可以不同,但是同一端的必须一样。我先讲字符串复制了一遍加到原来的字符串后面,然后把两个同样的项链放在一块,从头开始用两个变量(变量)a,b记录自左方某点至目前为止可搜集到之两种颜色珠子数,取途中所出现a+b之最大值,遇颜色变换时再将b指定给a即可,w也可以直接计数。/*ID:yucept21LANG:C++TASK:beads*/#include<cstdio>#include<cstring>#include<cstdlib>int main(){ freopen( "bead 阅读全文
posted @ 2012-01-14 15:04 找回失去的 阅读(159) 评论(0) 推荐(0)
摘要: 这道题是要计算从1900 到 1900 + N – 1年间的每个月的13号是星期五的频率,实际要求输出的是一个星期中每天出现的次数。首先确定的是平年还是闰年,然后用两个数组存储平年和闰年的每月的天数。明确一点就是从当前月到下一个的13号之间的天数就是当前月的天数,先确定上次13号是星期几,再加上当月的天数mod 7得到的就是下一次13号是星期几, 星期天则得到的数字是0,例如第一次1月13号是星期6,然后加上31对7 取余,得到下次是星期二。注意一点:到1900+N-1年时的最后一个月就不要加了,因为再加就是下一年了。最后循环求出结果即可。/*ID:yucept21LANG:C++TASK:f 阅读全文
posted @ 2012-01-14 15:03 找回失去的 阅读(167) 评论(0) 推荐(0)
摘要: 这道题的题目要求是求每个人收到礼物的总价值和送出去礼物总价值的差值。关键点是每个人送出的礼物总价值和送给人数存在整除的关系,所以处理的时候要注意/和%的区别,然后用strcmp找到送或者收到礼物的人,在结构体数组相应的money加上或者减去相应的金额。/*ID:yucept21LANG:C++TASK:gift1*/#include<cstdio>#include<cstring>#include<cstdlib>int N;typedef struct p{ char na[15]; int ney;}G;G tt[15];void init(){ sca 阅读全文
posted @ 2012-01-14 15:02 找回失去的 阅读(150) 评论(0) 推荐(0)
摘要: 这道题是比较两个字符串根据A = 1,Z = 26这种关系来进行乘法运算得到的值a和bMod 47之后值的关系,相等输出“GO”,不相等输出“STAY”。/*ID:yucept21LANG:C++TASK:ride*/#include<cstdio>#include<cstring>#include<cstdlib>int main(){ freopen( "ride.in", "r", stdin); freopen( "ride.out", "w", stdout); cha 阅读全文
posted @ 2012-01-14 15:01 找回失去的 阅读(163) 评论(0) 推荐(0)
摘要: #include<cstdio>#include<cmath>int n ,s ,a;int x, y;int main(){ while( scanf( "%d", &n) == 1) { if( n == 0) break; a = ( int )sqrt( n); s = a; a *= a; if( n == a) x = 1, y = s; else { s ++; n -= a; if( n <= s... 阅读全文
posted @ 2011-12-18 23:51 找回失去的 阅读(173) 评论(0) 推荐(0)
摘要: 这本来是一个简单的贪心题,但是我写的有点罗嗦了,这题只要把握住三点就行了:1. a/b是向下去整,我们要事先将a 变成 a+b-1,这样除法才不会错误。2. 把握6 * 6的箱子能放几个 各种类型的物品。3. 从大的放起,剩余空间要利用好,也就是要贪心。#include<cstdio>#include<cstring>#include<cstdlib>int a[7] = { 0};int res[5] = { 0};int ans;int main(){ while( scanf( "%d", &a[1]) == 1) { fo 阅读全文
posted @ 2011-12-17 23:44 找回失去的 阅读(243) 评论(0) 推荐(0)
摘要: 六个方向广搜...先是knowledgetime的代码,我写了一遍能A、、、#include <stdio.h>#include <string.h>#define Msize 29800typedef struct Dungeon{ int x,y,z,d;};const int step[10][3]={{-1,0,0},{1,0,0},{0,-1,0},{0,1,0},{0,0,-1},{0,0,1}};Dungeon q[Msize]={0};int L,R,C,mat[40][40][40]={0},mins;bool vis[40][40][40]={fal 阅读全文
posted @ 2011-12-16 13:08 找回失去的 阅读(315) 评论(0) 推荐(0)
摘要: 矩阵里的数字代表当前点的高度,只能从高的点滑到低的点,求最长能滑的距离。初始点不规定。我们可以向每个点的四周搜索,能走则就在当前距离加1。并将已经求的值保存在二维数组中。(记忆化搜索)/*Accepted 252K 47MS C++ 1158B 2012-07-23 16:13:17*/#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>using namespace std;const int MAXN = 105;const int dx[] = {0, 0 阅读全文
posted @ 2011-12-15 23:27 找回失去的 阅读(133) 评论(0) 推荐(0)
上一页 1 ··· 16 17 18 19 20 21 22 23 24 ··· 29 下一页