杭电oj怎么刷题 杭电oj1001题
如何有效使用 杭电 hdu oj
找好题刷.当你想熟练某个算法的时候可以在网上找相关的题目,有一些都是杭电的经典的题目.
杭电oj怎么刷题 杭电oj1001题
杭电oj怎么刷题 杭电oj1001题
杭电oj怎么刷题 杭电oj1001题
平时如果想检查自己或是锻炼一下自己的解题能力和知识面的话,也可以去打打HDOJ的BC(bestcoder)...感觉还是有帮助的.
有的水题你就不要去刷了...上面好像有很多不多类型的语言题...
怎样使用杭州电子科技大学acm
s英文不好,就做中文题,还有可以用有道金山等词典辅助,ACM的英文问题描述通常都是简单句子,翻译很准。
提高就是有针对的多做。一般有对应的分类。北大OJ对应有ppt和算法归类,入门快。杭电中文题多。
个问题,你是开玩笑的吧,就不回了。听说很多高中生喜欢在OJ上刷题,难道?
你好,我是新手,不太了解这些,想请教下,DP 是什么意思,还有关于ACM,您有什么好的方法吗
DP指动态规划.可以理解为通过状态解得到全局解 具体的解释与例子百科里就有的
有关ACM了解不多 本人目前在做NOIP 要说算法竞赛的提高方法也就只有A题了 可以去做做USACO之类的大题库 也可以刷刷tyvj这样的小题库 个人比较喜欢tyvj的 界面给人一种很清新的感觉 做题的类型应该全面一些 动规数论图论之类的都应有涉及 好了就说这么多了.
我只是玩过一下而已,DP是动态规划的意思,搜一下就有很多资料可以看的,想玩ACM,我觉得先练练代码能力,切50条左右的水题,然后再找找别人的代码模板,学习算法和做专门的题目,再后就是看论文和做一些综合题了
DP即dynamic programming
就是将一个大问题,转化到几个子问题上去
像这种比较抽象的名词, 直接解释是不太可能理解的吧
要想弄懂什么意思, 不是看一眼两眼别人的几句话就能明白的, 还是认真看书吧,
多看看书上的讲解和例子才能真正明白什么是动态规划, 动态规划是怎么用的。
搞ACM的必看的是 算法艺术与信息学竞赛 和 算法导论
NOIP是高中生做的, ACM要去大学的OJ做题, 我常去的是POJ (北大在线评测)
在哪儿做做题, 边学算法边做相应的题, 这样进步才快
杭电oj 1002题,我vc好几次都对,老是WA,求指导!代码如下:
(真心想不通为什么满意没有给我? )
有五个问题
: case 首字母大写“Case”
第二: 输入的时候,数据可能有前导0, 会导致你的结果中多输出0
比如这个case 9999 000000001
第三: 指针错误。 你的pa, pb, 没有初始化。 当交换过后, 第二次在使用时,应该重新赋值
pa = a; pb = b; , 否则pa 则不是指向a的,而是指向b的。
第四: 当较短的数字加完后, 可能进一位, 而进的这一位有可能使较长的数字进位
如: 19345 655, 千位进一,万位进一;
第五: 格式错误, 每组测试数据之间有一个空行,而不是每个测试数据之后有一个空行。
下面是改好的程序,希望对你有用。
另外说几句:
这个题目把数字串倒过来算更方便。
你的程序中有一些无关紧要的判断,比如T的大小,数据的正负以及长度, 这些题目中都有详细的描述, 会保证符合题意的, 所以不同判断。
#include
using namespace std;
#include
#include
int main()
{int i,j,T,k;
char a[1002],b[1002];//大整数转换为字符串处理
char pa;
char pb;
char p;
cin>>T;//测试组数
if(T>=1&&T<=20){
for(k=1;k<=T;k++){
cin>>a>>b;
pa = a; // 第二个错误
pb = b;
if(strlen(a)>1000||strlen(b)>1000){//a,b超过一千位,不符题意return 0结束
return 0;}
else{
char c[1002]={"0"};//a,b相加得到的数位数超过a,b时,前面补0,作为第1位数
if(atof(a)>0&&atof(b)>0){//atof(字符串转换为浮点数函数,包含在
if(strlen(a)>=strlen(b)){
strcat(c,a);}//将大的数前面补一个0
else{
p=pa;
pa=pb;
pb=p;
strcat(c,pa);}//同上
for(i=strlen(c)-1,j=strlen(pb)-1;i>=0,j>=0;){//从两数一位开始加
if((c[i]-'0'+pb[j]-'0')>=10){
c[i]=(c[i]-'0')+pb[j]-10;
i--;j--;
c[i]=c[i]+1;}//相加大于10的前面一位数加1
else{
c[i]=c[i]-'0'+pb[j];
i--;j--;}
}while (c[i] - '0' >= 10) // 第四个错误
{c[i] = c[i] - 10;
c[-- i] ++;
}i = 0;
while (c[i] == '0') // 第三个错误
{i ++;
}cout<<"Case "< for(;i<=strlen(c)-1;i++){ cout< cout< if (k < T) // 第五个错误 {cout << endl; }} else return 0;} }return 0; }return 0; }下面是把数字串倒过来的做法, 写的不好, 仅供参考, 如有错误, 不吝赐教。 #include "stdio.h" #include "string.h" #include "stdlib.h" #define MAX 2000 void rrse (char []); int main() {int i, k; int N, count = 0; int lenA, lenB, value; char A[MAX], B[MAX], sum[MAX], p; scanf ("%d", &N); while (N --) {scanf ("%s%s", A, B); rrse (A); rrse (B); lenA = strlen(A); lenB = strlen(B); memset(sum, '0', MAX); k = 0; for (i = 0; i < lenA && i < lenB; i ++) {value = A[i] - '0' + B[i] - '0'; if (value >= 10) {sum[k] = sum[k] + value - 10; sum[k + 1] = '1'; }else {value = sum[k] - '0' + value; if (value >= 10) {sum[k] = '0'; sum[k + 1] = '1'; }else {sum[k] = value + '0'; }} k ++; }p = A; if (i == lenA) {p = B; }for (; i < strlen(p); i ++) {value = sum[k] - '0' + p[i] - '0'; if (value >= 10) {sum[k] = '0'; sum[k + 1] = '1'; }else {sum[k] = value + '0'; }k ++; }if (sum[k] != '0') {k ++; }sum[k] = '0'; rrse (A); rrse (B); rrse (sum); printf ("Case %d:n", ++ count); printf ("%s + %s = %sn", A, B, sum); if (N >= 1) {printf ("n"); }} return 0; }void rrse (char A[]) {int len; int i, temp; len = strlen(A); for (i = 0; i < len / 2; i ++) {temp = A[i]; A[i] = A[len - i - 1]; A[len - i - 1] = temp; }} 既然大一的同学选择计算机专业,当然少不了刷题啦!但是有很多刷题网站是免费的,同学们想知道吗?下面由我来讲讲吧。 1.力扣这个网站收录了很多知名互联网公司出的算法题目,相信大一同学很熟悉了,很多同学都在这里刷题,增强对计算机基础知识掌握。它支持多种编程语言,如:Ja、Ptthon、Ruby等。常做的是算法题,目前有一千多道的题目。有专门的图文和视频讲解,方便同学们茶楼补缺。也可以在个人界面查看进展,看自己的学习情况。如果出来工作笔试中,面试官会从这里抽题。刷题过程中全部会了,那么工作没有什么大问题。 2.洛谷一个很良心的网站,有着强大的社区,可以在线学习,带来的是清爽的体验。里面功能真是多,题量大,有涉及到A+B、WC、CTSC等。可以加入题单,方便日后复习,来弥补自己的劣势。在刷题的同时,右边的界面可以查看刷题的通过率,在会显示历史成绩,看成绩的波动。不定时会举行比赛,分为个人公开赛和团队公开赛,胜出者会有奖励。有讨论区,可以跟在线的小伙伴一起交流学习知识,感受到学习的乐趣。 3.牛客网被称为"互联网求职神器“,这里不只刷题,也可以求职、面试。有很多丰富的历年校招编程真题,为以后校招的笔试做好准备,热度达到上万的程度。题库质量很高,难度分为简单题、中等题、难题。都有配套的讲解,有涵盖到知识点标签,也有自测运行。个人界面有刷题统计,也有排名榜,跟小伙伴PK。也有刷题日历,你在什么时候刷题。可以筛选标签,有栈、堆、链表等,对标签做好分类,选起来真是方便! 以上我列举了三个计算机免费刷题的网站,同学们看到我写的后,来收藏夹吃灰~希望同学们有时间使用这三个网站学习计算机相关知识,提高计算机专业能力,祝你们学有所成! 作为一名信息安全的学长,本科的时候也去过不少的刷题网站来练习巩固自己的算法与程序设计,也参与过不少算法竞赛。 大一同学大部分都是刚开始接触编程,所以刷题的目的应该更倾向于学习基本变成语法。很大的一个误区就是上来就刷leetcode,连基本的语法、函数都没学会就不要去弄数据结构和算法了,下面分享一下我自己的经验: 目前市面上可以免费刷计算机题目的网站并不少,主要有leetcode、洛谷、hihocoder、牛客等。相较而言,牛客对于技术新手还是比较友好的。 一、基础学习期:定项刷知识点 大一还是处在基础学习期,还是建议从专项练习开始做起,通过一些选择题了解一些计算机的相关知识,通过多看多学多练,慢慢开始熟悉计算机的高频考点以及掌握基础知识点。 可以看到,在专项练习中有多个知识点分布,包括语法、算法、数据库、作系统、数据结构等。这些知识点基本上也囊括了计算机所有的必备考察点,在这里你可以点开自己想要学习的知识点,然后就会随机出现10道选择题。 除了常规的练习模式,还可以邀请同专业好友进行PK,共同学习进步是一件彼此成就和开心的事情。 二、上手练期:练习在线编程 在计算机专业学习中,除了专业知识的掌握,实际敲代码也是极为重要的,这时候牛客库中的在线编程板块就可以派上用场了。 在这里,同学们可以根据自己的学习需求选择题目的难度,完全不用担心自己做不出题目而受到打击。 另外,在线编程板块还设有题解区,遇到不会做的题目可以从题解中得到启发;多种题解方法也可以帮助你扩展自己的做题思路;讨论区板块还可以和一起做题的小伙伴沟通交流,彼此鼓励。 三、知识复习期:刷真题 牛客里面的公司真题也是很好的复习资料。互联网公司的真题大部分是选择题和编程题兼有,刷真题同时锻炼你的知识和编程作,而这真是计算机专业的学生必须掌握的。 质而言之,计算机专业的学习是离不开刷题的,越早认识到这点,越早行动起来,就可以走在其他同学的前面。根据自己的学习能力选择合适的刷题网站,在我看来牛客是适合新手的,不要一上来就听别人说一定要刷leetcode,打好基础才是正道! 我打算按照菜鸡-初级-进阶-大神的顺序给大家刷题网站,通通可以白嫖,大家可以根据自己的需求选取合适的学♂习网站噢,不亏! 菜菜子刷题网站 对于大一计算机专业的学生来说,怕的不是没有刷题网站,而是刷不通(废话,人家连专业课都没学,你让人家码啥?)。所以要从零开始刷题的话,我先这几个小白也能刷的网站或题集: 核心目的:找到coding的感觉,规范代码写法。 ①Programming by Doing 以作业的形式整理的编程基础题,题目相对还是比较简单的。 ②新手编程必刷50题 这是LintCode上的一份在线OJ,题目由ACM铜牌选手心编撰。 出题核心在于从基本编程知识点学起,覆盖刷题过程中常见的算法与数据结构,主要包括基本数据类型、判断语句、数组与循环、字符串与循环、栈与队列、简单递归六大阶段。 刷完这些题目,可以熟悉编码流程,并建立起刷题的信心,刷下来感觉还是不错的。 初阶刷题指南 如果前面的内容对你来说过于基础,那么可以来尝试下这里的网站。 核心目的:夯实算法与数据结构知识点,应付简单的面试。 ①LintCode LintCode 收集了网上一些常见、频的大厂面试真题,支持中英双语。 如果你在准备计算机相关面试,在 LintCode 刷题是很有帮助的,它的每道题都有详细的解答,能帮助你更好地理解,你也可以按照算法与数据结构的知识点、按照公司类别刷题,事半功倍。 我喜欢它的一点在于页面整洁干净,没有太多花里胡哨的内容。 ②洛谷 洛谷上的题目很多,还有很多的基础题,使用体验很不错。 缺点是筛选方式比较少,也没有相应的阶梯训练,但很适合时间比较充裕的同学。 ③牛客网 牛客上也是有算法题库的,按照算法、SQL、shell、前端分类,还有像是公司真题和高频题等,分类比较细致,还可以刷刷面经。 ④hihocoder 这个页面也比较直接,而且按照刷题频次排序,个人是比较喜欢这种比较清爽直观的页面的。 ⑤LeetCode LeetCode也是个比较出名的刷题网站了,讨论区人比较多、题目覆盖也比较全面,不过带锁的题目比较多。 进阶刷题之路 这个阶段,你应该可以搞定绝大多数的easy题,刷题对你来说已经是种习惯了,这时候核心目的是短时间冲刺。 核心目的:尽可能实现bug free,或是在短的时间熟悉高频考点,冲刺大厂面试。 ①国内外大厂高频真题 我的策略是在面试前刷目标企业的高频题、真题,快速熟悉大厂面试风格,及时查缺补漏。 这套OJ是以公司分类,采取了阶梯训练的方式,一道一道刷过去,也可以体验升级打怪的感觉,刷起来也会比较有趣。 ②算法进阶80题 这是前面提到新手刷题的进阶版,覆盖了12个核心知识点,像是二分法、双指针、简单的动态规划等,如果觉得自己水平尚可,可以来刷一下。 ③一些实用的刷题技巧 当然,除了刷题网站也要分享一些实用的刷题技巧: 1.刚开始刷题时,每道题给自己20分钟,如果想不出来就直接看。Why?在面试中面试官根本不可能给你这么多的时间,而且在刷题的阶段,“速通”很重要,注重效率。 2.前期,按照算法与数据结构的知识点刷题;后期,隐藏掉算法与数据结构的标签。Why?一开始刷题的时候,可以刷一种类型的题,找到这类题的出题规律。比如二分法的题有什么特征,这种题可以怎么解,但掌握套路以后就不能看着知识点刷,这样容易陷入思维定势,而且在面试中也不会告诉你这道题是考察什么内容。 3.一道题,至少掌握2种解法,能掌握3种。Why ?一般来说可以掌握标准解法(面试常考、面试官能理解)、解(自行钻研、炫技)、解(实在做不出来的时候还有个保守解法) ④辅助的书籍 ,就两本书吧。《剑指offer》和《编程之美》,这里也有配套的题集,将白嫖进行到底。 -殿堂级 如果你想往算法精进下去,而不仅仅局限于算法面试,而是想去打比赛,成为专业的选手(如acm)的话,这些OJ会比较适合你。 ①杭电OJ 可以说是国内有名、应用广、难度设置为合理的OJ吧(别杠,杠就是你对)。由于很多比赛都会在上面举办,因此它也是众多大佬刷题和打比赛训练的,虽说页面略有点朴素,但谁让它人气高呢? ②UVa Online Judge:西班牙Valladolid大学的Online Judge,古老也是全世界知名的Online Judge,题库有详细的分类,题目类型非常广泛。重要的是,题目类型属于中等,比较适合初学者刷题学习。 ③北大OJ:同样是国内较好,而且比较经典的OJ了。题目难度不算高,打开速度很快,适合大佬们在此切磋学习~ ④Codechef 一个印度的OJ,相对于其他的刷题网站,这个网站的特点是有更多的比赛题。 ,祝各位都能找准自己的定位!无论你将来想从事何种行业,想去什么公司,找到自己的方向重要。不要觉得自己不行,不试一试怎么知道呢? 莫负年少好时光,现在就是的时候。 力扣(Leetcode)刷算法题的平台,算法是重中之重 牛客 有很多类型的题库,还有大厂找人的真题,很值得一试有什么适合大一计算机专业学生免费的刷题网站?
版权声明:图片、内容均来源于互联网 如有侵权联系836084111@qq.com 删除