- 浏览: 120701 次
- 性别:
- 来自: 北京
最新评论
写代码最重要的是清晰,包括思路的清晰和代码结构的清晰。我们无法保证写的代码一定是正确的,但我们可以保证自己是在头脑清晰的情况下书写,并且通过不断的练习,用更加清晰的代码结构实现。越清晰,程序就越可能正确,并且即使出错也很容易看到问题。
0) 在能过题的情况下,最朴素最好写的方式就是最好的。 1) double x = 0; scanf("%lf", x); // &x printf("%lf\n", x); // output double -> %f printf("%.6f\n", 0); // undef // best practice printf("%.4f\n", x + EPS); 2) int a[10]; sizeof(a); // 10 * 4 void gao(int a[]) { memset(a, 0xff, sizeof(a)); // sizeof(a) == 4 // best practice fill(a, a + 10, -1); } 3) const int inf = 0x7fffffff; void dijkstra(int dist[], int n) { fill(dist, dist + n, inf); // when a + b will get overflow // best practice fill(dist, dist + n, 0x3f3f3f3f); ... } 4) // output % printf("%%"); // output hex, oct print("%x%o", a, b); 5) int a = 3; if (a = 3) { // == } 6) int x = -7, m = 3; printf("%d\n", x % m); // best practice printf("%d\n", (x % m + m) % m); 7) long long a = 1 << 40; // best practice long long a = 1LL << 40; 8) long long a; printf("%I64d\n", a); // under windows printf("%lld\n", a); // under linux 9) int main() { int a[10 * 1000 * 1000]; // too large in stack ... } // best practice int a[10 * 1000 * 1000]; int main() { ... } // or int main() { vector<int> a; ... } 10) char a[11]; gets(a); // unsafe // best practice fgets(a, 11, stdin); 11) double a = 1.0, b = 1.0 / 888888888888888888 * 888888888888888888; printf("%s\n", a == b ? "same" : "diff"); // best practice int sgn(double x, double eps = 1.0e-9) { return (x > eps) - (x < -eps); } printf("%s\n", sgn(a - b) == 0 ? "same" : "diff"); 12) // round up (int)(a + EPS) (int)(a + EPS + 0.5) 13) // small heap priority_queue< double, vector<double>, greater<double> > que; // unique vector<int> vec; sort(vec.begin(), vec.end()); vec.resize(unique(vec.begin(), vec.end()) – vec.begin()); 14) 总是用cerr输出调试信息,这样在注释调试信息时,搜索cerr就可以很容易注释掉全部的调试信息。 15) CodeBlocks在运行窗口粘贴数据的方法 16) 总是使用fill_n函数 http://www.cplusplus.com/reference/algorithm/fill_n/
发表评论
-
lower_bound and upper_bound
2012-02-09 00:36 1188/** * @brief Finds the ... -
HDU 3954
2012-02-05 10:43 867线段树变种,也是在2logn段上面做文章 /* * ... -
HDU 4027
2012-02-04 22:09 889线段树变种 在2logn段上面做文章,swap(x, y)太阴 ... -
[转载]TopCoder插件
2011-09-08 22:13 1012转载自:http://acm.cugb.edu.cn/blog ... -
UVALive 5112 - Sales Prediction
2011-01-06 10:19 1223封装了矩阵类 比赛做得很郁闷,为什么别人写得很长、很罗嗦的代码 ... -
hdu 3236
2010-12-12 14:10 828终于能过这道题了,算是背包必做题之一吧 /* * Au ... -
pku 1018
2010-12-11 15:18 649写了两三个版本,最后这个效率最高 #include < ... -
布斯(Booth)乘法
2010-10-07 19:59 1174源自http://watashi.ws/blog/1515/z ... -
高斯消元
2010-10-07 14:18 837import java.util.*; import j ... -
整数划分
2010-10-07 10:38 860#include <cstdio> #inc ... -
Treap
2010-09-18 22:19 1010// Treap // Tested: bjtu1057 ... -
矩阵快速幂
2010-09-18 14:24 1072typedef LL matrix[55][55]; ... -
maximum clique 最大团
2010-09-02 18:12 1168最大团模板 #include <cstdio> ... -
计算Jacobi符号
2010-08-31 13:15 1338Quadratic reciprocity The Jacob ... -
Java 高效I/O
2010-08-19 16:54 810static BufferedReader cin = ... -
DLX pku 3076
2010-08-11 23:45 921标准数独,精确覆盖 // pku3076.cpp #in ... -
DLX hust 1017
2010-08-11 16:50 879“精确覆盖”问题 #include <cstdio& ... -
DLX hdu 3498
2010-08-11 16:48 1079“多重覆盖”或“重复覆盖”问题 #include < ... -
hdu 3509
2010-08-09 11:22 1028推导公式的题目,矩阵幂关键就在于构造系数矩阵 备忘: S(n, ... -
RMQ模板
2010-07-28 11:04 1222/* * Author: rush * Creat ...
相关推荐
在ACM/ICPC(国际大学生程序设计竞赛)中,训练和...对于初次接触ACM/ICPC的选手,建议从初级题目开始,随着理解的深入逐渐挑战更难的题目。在每个阶段,不断反思和总结,加深对算法的理解,才能在竞赛中取得好成绩。
此外,还提供了C++编程实例演示了二分查找的编码实现方法,附带了一些常用的参考书目及线上培训资源。 适合人群:对编程竞赛感兴趣的学生或程序员,特别是想要提升个人技术实力以应对ACM-ICPC等赛事的人士。 使用...
4. **贪心算法**:在部分情况下,局部最优选择能导致全局最优解,如霍夫曼编码、Prim和Kruskal最小生成树算法等。 5. **回溯法**:用于在庞大的解空间中寻找解,如八皇后问题、数独求解等。 6. **图论**:包括图的...
3. 排序与搜索:快速排序、二分查找等经典算法在ACM/ICPC中频繁出现,Java的Collections.sort()和Arrays.sort()方法可以简化编码过程。 4. 数论:包括质数判断、最大公约数、最小公倍数等。Java的BigInteger类可以...
UVA Online Judge 是一个历史悠久的 OJ 平台,它包含了大量的经典编程题目,涵盖了 ACM/ICPC(国际大学生程序设计竞赛)的许多主题。在 UVA 上,你可以找到不同领域的题目,如数学、计算机科学基础等,这些题目可以...
内容概要:本文详尽地介绍ACM国际大学生...其他说明:ACM ICPC不仅是对学生个人实力的极大考验,更是团队协作精神的真实展现。通过此文,读者可以更加明确自己参赛的目的与意义,同时获取实用的竞争攻略和技术建议。
- **建议**:报名参加一些知名的C++竞赛或认证考试,如ACM ICPC、C++ Certified Professional Programmer等。 #### 34. 学会利用开源资源 - **解释**:许多优秀的开源项目提供了宝贵的代码示例和技术文档。 - **...
- **策略选择:** 在多道题目中选择合适的问题进行解答,通常建议先易后难,先挑选那些看起来容易入手且对算法要求不是特别高的问题。 - **时间管理:** 竞赛时间有限,因此合理分配时间对于取得好成绩至关重要。 #...
ACM/ICPC的输入输出特性主要为流式和ASCII编码。这意味着输入是顺序的,不能使用文件定位函数,输出可以随时进行,只要保证输出顺序正确即可。在ASCII编码下,数字如12345实际上由五个字符组成。因此,C语言中推荐...
- 参加竞赛活动,如ACM/ICPC和数学建模竞赛,对日后找工作非常有帮助。 - 推荐的编程网站:USACO、POJ和TopCoder。 #### 二、应对不同学习阶段的策略 1. **本科阶段**: - 提升绩点的同时,积极参与各类竞赛,...
**ACM比赛,全称是国际大学生程序设计竞赛(International Collegiate Programming Contest,简称ICPC或ACM/ICPC),是一项旨在展示大学生创新能力、团队合作精神和在压力下编写程序解决实际问题能力的国际性比赛。...
4. **编码技巧**:解题过程中可能会提到一些编程语言的特性,如C++的模板、STL库的使用,或者Java的泛型等,以及如何优化代码以适应比赛环境。 5. **问题分类**:题目可能按照主题分类,例如数论问题、几何问题、...
在阅读过程中,建议配合在线题库进行实践,如ACM/ICPC官方题库或LeetCode等平台,通过编写代码来加深理解和记忆。同时,积极参与讨论和分享,与他人交流解题思路,能够更快速地提升编程水平和问题解决能力。
- 练习高效编码,减少错误提交次数。 - 熟悉各种算法和数据结构的应用场景。 - 学会快速定位和修复代码中的错误。 #### 四、必备知识领域 ##### 1. **编程语言** - 掌握C/C++或JAVA的基础语法。 - 理解面向...
文章还特别提到中国大陆赛区的题目,如ICPC(国际大学生程序设计竞赛)和CCPC(中国大学生程序设计竞赛)的赛场题目,这些题目具有广泛的知识覆盖范围和较高的难度。对于竞赛选手而言,这些题目不仅是对他们算法知识...
ACM,全称国际大学生程序设计竞赛(International Collegiate Programming Contest,简称ICPC或ACM/ICPC),是一项全球性的计算机编程竞赛,旨在激发大学生对计算机科学的兴趣,提高其解决复杂问题的能力。...
标题中的“29th ACM”指的是第29届国际大学生程序设计竞赛(International Collegiate Programming Contest,简称ICPC或ACM)。这是一个极具影响力的全球性计算机编程竞赛,旨在推动大学学生在算法、编程和解决问题...
模板的整理目的是为了确保快速编码和减少错误,让参赛者能够将更多的精力投入到算法逻辑的思考上,而不是从零开始编写基础代码。 为了在ACM竞赛中取得好的成绩,参赛者需要对这些算法和数据结构有深刻的理解,并且...
ACM,全称国际大学生程序设计竞赛(International Collegiate Programming Contest,ICPC),是全球范围内极具影响力的大学生计算机编程竞赛,它强调团队合作、快速编程和问题解决能力。 在这个压缩包中,文件名为...