赵乐ACM

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页

2012年4月9日

摘要: 1. 比较简单,但是用到了文件读写,终于明白了给的test代码中的fout和fin是什么意思了,哈哈;2. 如果按照一般的思路,肯定会超时,所以把dict转换成数字,这样的算法效率是固定的以下是代码:/* ID: dollar4 PROG: namenum LANG: C++ */ #include #include #include #include #include using namespace std; char get_num(char a) { switch (a) { case 'A' : return '2'; cas... 阅读全文
posted @ 2012-04-09 16:44 赵乐ACM 阅读(139) 评论(0) 推荐(0)

摘要: 1. 被这道题虐了无数次,每次编译通过,但是运行会错误(当时用的是string数组), 后来把string数组改成char[][]二维数组就好了;2. 给的参考代码是不对的3. 如果函数的返回类型是数组,只能通过指针来实现,但是参考代码给了一种巧妙的方法,把数组封装成结构体,然后返回结构体以下是我的代码:/* ID: dollar4 PROG: transform LANG: C++ */ #include #include #include #include #include using namespace std; typedef char array[10][10]; cha... 阅读全文
posted @ 2012-04-09 13:59 赵乐ACM 阅读(155) 评论(0) 推荐(0)

2012年4月8日

摘要: 1. 算法:把所有的时间按照开始的时间从小到大排序,然后设当前cur为目前的至少有一个工作的时间段,判断下一个时间段是跟这个时间段交叉还是包含在这个时间段之内还是在这个时间段之外,根据这三种不同过的情况,分别得到答案。值得注意的是,最后要得到cur的时间段的值,因为前边的循环当中,没有判断跟这个时间段比较的情况。以下是代码:/* ID: dollar4 PROG: milk2 LANG: C++ */ #include #include #include #include #include using namespace std; const int MAXN = 5000; st... 阅读全文
posted @ 2012-04-08 16:49 赵乐ACM 阅读(189) 评论(0) 推荐(0)

2012年4月5日

摘要: 1. 算法:从一个节点开始,假如是r,如果下一个是r或者w,继续,一直到下一个为b为止,然后从b开始看下一个,如果是b或者w,继续,如果是r停止,处理“环”的问题,用了求余,可以使结尾的下一个变成第一个,但是要注意,最后结果不能大于n。2. 这是O(n^2) 的复杂度吧。/* ID: dollarzhaole PROG: beads LANG: C++ */ #include #include #include using namespace std; int main() { ofstream fout ("beads.out"); ifstream fin (" 阅读全文
posted @ 2012-04-05 20:39 赵乐ACM 阅读(176) 评论(0) 推荐(0)

摘要: 1. 蔡勒公式:来自百度百科w:星期; w对7取模得:0-星期日,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六 c:世纪(前两位数) y:年(后两位数) m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算) d:日 [ ]代表取整,即只要整数部分。 下面以中华人民共和国成立100周年纪念日那天(2049年10月1日)来计算是星期几,过程如下: w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1 =49+[49/4]+[20/4]... 阅读全文
posted @ 2012-04-05 17:14 赵乐ACM 阅读(137) 评论(0) 推荐(0)

摘要: 1. 文件输入输出好别扭;2. 第一次没注意到cas--之后for循环就没作用了,得不到结果。/* ID: dollarzhaole PROG: gift1 LANG: C++ */ #include #include #include using namespace std; struct Node { string name; int sendp;//送给几个人 int getm;//收到的钱 int sendm;//送出去的钱 int inim;//刚开始的钱 } node[11]; int cas; int getname(string s... 阅读全文
posted @ 2012-04-05 15:31 赵乐ACM 阅读(192) 评论(0) 推荐(0)

摘要: 1. 从今天开始做USACO了,系统的学习下;2. 有详细的解题报告,可以看人家的代码,使自己的代码更简洁,更规范。/* ID: dollar4 PROG: ride LANG: C++ */ #include #include #include using namespace std; long getnum(string str) { long num = 1; for (unsigned int i = 0; i > str1 >> str2; num1 = getnum(str1); num2 = getnum(str2); if (n... 阅读全文
posted @ 2012-04-05 13:18 赵乐ACM 阅读(157) 评论(0) 推荐(0)

2012年3月31日

摘要: 1. 数学题,欧几里得算法,求不定方程的整数解问题;2. 必要的数学知识(转):此题其实就是扩展欧几里德算法-求解不定方程,线性同余方程。 设过s步后两青蛙相遇,则必满足以下等式: (x+m*s)-(y+n*s)=k*l(k=0,1,2....) 稍微变一下形得: (n-m)*s+k*l=x-y 令n-m=a,k=b,x-y=c,即 a*s+b*l=c 只要上式存在整数解,则两青蛙能相遇,否则不能。扩展欧几里德算法是用来在已知a, b求解一组x,y使得a*x+b*y=Gcd(a,b)(解一定存在,根据数论中的相关定理)。扩展欧几里德常用在求解模线性方程及方程组中。下面是... 阅读全文
posted @ 2012-03-31 10:56 赵乐ACM 阅读(228) 评论(0) 推荐(1)

2012年3月30日

摘要: 1. 模拟题,按照题目的要求做即可,但是要细心,比较繁琐,尤其是边界问题;2. 20分钟写完程序,但是WA了七八次,检查了一个小时,最后加上循环输入输出,居然AC了,欲哭无泪。#include #include #include using namespace std; const int MAXn = 10010; bool cmp(int a, int b) { return a > n >> m) { for (i = 0; i > rmovNum[i]; memset(curList, 0, sizeof(curList)); ... 阅读全文
posted @ 2012-03-30 15:20 赵乐ACM 阅读(189) 评论(0) 推荐(0)

2012年3月29日

摘要: 1. 简单题,根据题意,这个人总是坐着最先到达的自行车到达,因此只需要算出最先到达的自行车的时间即可。2. 值得注意的是出发时间小于0的,这个人不可能坐上这辆车。#include #include using namespace std; int speed; int stime; double dtime; int main() { int n, min, i; while (cin >> n) { if (n == 0) break; min = 1000000; for (i = 0;... 阅读全文
posted @ 2012-03-29 15:25 赵乐ACM 阅读(119) 评论(0) 推荐(0)

上一页 1 ··· 3 4 5 6 7 8 9 10 11 下一页