俊介三

一天更新一点,一天积累一点

导航

2013年3月8日

摘要: 1040. Longest Symmetric String (25)http://pat.zju.edu.cn/contests/pat-a-practise/1040给一个字符串,求最长的对称串的长度。最初思路:复制一个它的反串,求它们最大的公共子串,想了下复杂度是O(n^2)?还是直接遍历字符串,每个作为中心找记录最长串比较方便。注意abba和aba这两种形式的对称都要处理。View Code #include <stdio.h>#include <string.h>int len;int getSymm(char* str, int pos){ int coun 阅读全文

posted @ 2013-03-08 21:14 俊介三在前进 阅读(146) 评论(0) 推荐(0)

摘要: 1049. Counting Ones (30)http://pat.zju.edu.cn/contests/pat-a-practise/1049输入N,输出1到N之间有多少个1。譬如,1到13之间有1,10,11,12,13 6个数字1思路:按位数,找规律。参考例如100个位1的个数:它左边只能取0-9,所以有10个十位1的个数:它左边只能取0,右边能取0-9,所以有10个百位1的个数:1个View Code #include <stdio.h>int main(){ int d; scanf("%d",&d); int x=1; int total 阅读全文

posted @ 2013-03-08 20:18 俊介三在前进 阅读(188) 评论(0) 推荐(0)

摘要: 详见 http://www.cplusplus.com/reference/stl/vectorView Code #include <stdio.h>#include <vector>using namespace std;int main(){ vector<int>v; //把23加入到最后 v.push_back(23);//23 v.push_back(12);//23 12 //把最后的数删掉 v.pop_back();//23 //把最后的数删除 v.pop_back();// //清空 v.clear(); ... 阅读全文

posted @ 2013-03-08 19:07 俊介三在前进 阅读(159) 评论(0) 推荐(0)

摘要: 1047. Student List for Course (25)http://pat.zju.edu.cn/contests/pat-a-practise/1047跟前面贴的一篇-pat 1039类似,都是根据课程及注册学生进行排序。思路:创建一个课程结构体,里面有注册的学生及本课程总人数。注意,每个学生用一个整数来表示(题中说学生姓名为三个字母+1个数字,例如ABC4)这样存储和搜索的效率最高。按如下方法储存:A减字母A再左移24位,B减字母A再左移16位等等,最后把他们都加起来得到一个整数。这个整数解释姓名时,按相反操作即可。PS. 位移操作<< 优先级比加法还低?总之加括 阅读全文

posted @ 2013-03-08 13:35 俊介三在前进 阅读(503) 评论(0) 推荐(0)

摘要: 1024. Palindromic Number (25)http://pat.zju.edu.cn/contests/pat-a-practise/1024题目大意:给数N和K,求N和它的反转的和是否对称,在K步之内是否能达到。注意的地方:1.C++中,在函数中声明的数组,返回函数后,这些局部变量都释放了。如果不想释放,可以new一个。int* a = new int[10];然后把a这个地址返回,就能继续正常访问这个在函数中创建的数组2.题目中“where N (<= 1010) is the initial numer”,就不要用int N;来声明变量,浪费时间。View Code 阅读全文

posted @ 2013-03-08 11:54 俊介三在前进 阅读(171) 评论(0) 推荐(0)