- 博客(57)
- 收藏
- 关注
原创 《Effective C++》 Reading Note 4
条款44:将参数无关的代码抽离templatesfactor parameter-independent code out of templates.1.Templates生成多个classes和多个函数,所以任何template代码都不该与某个造成膨胀的template参数产生相依关系。2.因非类型模板参数(non-type template parameters)而
2014-11-11 16:05:15
447
原创 《Effective C++》 Reading Note 3
条款31:将文件间的编译依存关系降至最低minimize complilation dependencies between files.该条款十分复杂,最好阅读原书。以下仅是部分摘录:前置声明 class Date;包含头文件 #include "date.h"handle class和implementation class分开,一个类只提供接口
2014-11-11 16:04:54
366
原创 《Effective C++》 Reading Note 2
条款19:设计class犹如设计typetreat class design as type design.注意:1.新type的对戏那个如何被创建和销毁:以及构造、析构函数,内存分配和释放函数。2.对象的初始化和对象的赋值有什么区别。3.新type对象如果被以值传递,意味着什么?4.什么是新type的合法值?5.你的新type需要配合某个继承图系吗?(in
2014-11-11 16:04:32
361
原创 《Effective C++》 Reading Note 1
STL Standard Template LibraryTR1 一份RFC的规范,描述加入C++标准程序库的诸多新机能。Boost 一个网站,一个开源的C++程序库。大多数TR1的机能以它的工作为基础条款2:尽量以const,enum,inline代替#defineperfer consts, enums, and inlines
2014-11-11 16:00:05
418
原创 UVaOJ 537 - Artificial Intelligence?
#include#include#includechar qs[300];int main(){ int n = -1; scanf("%d\n", &n); for (int i = 0; i < n; ++i) { memset(qs, '\0', sizeof(qs)); double uVal = 0.0; double iVal = 0.0; doubl
2014-06-02 10:05:05
566
原创 UVaOJ 10361 - Automatic Poetry
#include #include char line1[200];char line2[200];//#define DEBUGint main(){int n = 0;scanf("%d\n", &n);//如果scanf("%d", &n)这样写,输入完数字之后回车,会导致回车暂存在输入缓存区//当接着调用fgets时,会读入一个空行即"\n\0";如接着
2014-05-28 15:20:34
425
原创 UVaOJ 10010 - Where's Waldorf?(非AC版本)
#include #include #include char s[52][52]; char w[52]; int main() { memset(s, '\0', sizeof(s)); memset(w, '\0', sizeof(w)); int testCaseN = 0; while(scanf("%d",
2014-05-10 00:08:12
415
原创 UVaOJ 401 - Palindromes
//假如题目说字符串的字符有20个,就至少要预多两个空位,一个留给'\n',一个留给'\0'#include #include #include #include int main(){ char ct[26] = { 'A', '\0', '\0', '\0', '3', '\0', '\0', 'H', 'I', 'L', '\0', 'J', 'M', '\0', 'O',
2014-05-06 13:56:10
485
原创 UVaOJ 489 - Hangman Judge
#include #include #include int main(){ int round = -1; int len = 0; int chs[26]; char buf[50]; memset(chs, 0, sizeof(chs)); memset(buf, '\0', sizeof(buf)); while (scanf("%d", &round) == 1
2014-05-05 23:20:55
477
原创 UVaOJ 488 - Triangle Wave
#include int main(){ int n = 0; scanf("%d", &n); while (n--) { int a = 0; int f = 0; scanf("%d%d", &a, &f); while (f--) { for (int i = 1; i <= a; ++i) { for (int j = 0; j < i
2014-05-05 20:06:02
443
原创 UVaOJ 694 - The Collatz Sequence
//题目明明告诉了我数据范围了,我还是没有注意溢出的问题!啊//要用long,甚至long long#include int main(){ long long A = -1; long long limit = -1; int n = 0; while (~scanf("%lld%lld", &A, &limit) && !(A == -1 && limit == -1)) {
2014-05-05 19:39:18
352
原创 UVaOJ 457 - Linear Cellular Automata
#include #include int main(){ int dish[42]; int dna[10]; int n = 0; scanf("%d", &n); while (n--) { for (int i = 0; i < 10; ++i) scanf("%d", &dna[i]); memset(dish, 0, sizeof(dish)); d
2014-05-05 17:12:26
500
原创 UVaOJ 490 - Rotating Sentences
#include #include char buf[102][102];int main(){ memset(buf, '\0', sizeof(buf)); int n = 0; int maxLen = 0; while(gets(buf[n]) != NULL){ int len = strlen(buf[n]); if(len > maxLen){ maxLe
2014-05-04 14:25:41
393
原创 UVaOJ 414 - Machined Surfaces
#include #include int main(){ char buf[30]; memset(buf, '\0', sizeof(buf)); int n = 0; while(~scanf("%d", &n) && n){ fgets(buf, sizeof(buf), stdin); int sum = 0; int min = 65535; for(int
2014-05-04 13:12:23
388
原创 UVaOJ 494 - Kindergarten Counting Game
//本人复杂了的方法#include #include #include char* trimSpace(char *str){ if (str == NULL || *str == '\0'){ return NULL; } while (!isalpha(*str) && *str != '\0'){ ++str; } return str;}char* trim
2014-05-04 00:19:33
485
原创 UVaOJ 458 - The Decoder
#include #include int main(){ char buf[100]; memset(buf, '\0', sizeof(buf)); while (fgets(buf, sizeof(buf), stdin) != NULL){ int len = strlen(buf); for (int i = 0; i < len - 1; ++i){ buf[i
2014-05-04 00:18:06
503
原创 UVaOJ 10300 - Ecological Premium
#include int main(){int len = 0;scanf("%d", &len);while (len--){int f = 0;scanf("%d", &f);int sum = 0;while (f--){int s, n, d;scanf("%d%d%d", &s, &n, &d);sum += (double)s * d;}
2014-05-04 00:16:55
380
原创 UVaOJ 10071 - Back to High School Physics
#include int main(){ int v = 0, t = 0; while (scanf("%d%d", &v, &t) != EOF){ printf("%d\n", 2 * v * t); } return 0;}
2014-05-04 00:16:08
338
原创 UVaOJ 10055 - Hashmat the Brave Warrior
//题目不难但是关键点在这句//The input numbers are not greater than 2^32//int的精度不够,unsigned int也不行,要用unsigned long# include int main(){ unsigned long a, b; while (scanf("%ld%ld", &a, &b) != EOF)
2014-05-04 00:15:26
521
原创 ZOJ 1295 - Reverse Text
//格式练习!#include #include char str[80];int main(){memset(str, '\0', sizeof(str));int n = 0;scanf("%d\n", &n); //“\n”不能省!否则,会导致多输出一个换行,以至于结果为Presentation Error!for (int i = 0; i fgets(
2014-05-04 00:11:09
424
原创 洗牌算法
1.抽牌法:从一个数组中随机抽出一张牌(然后最末位的牌去补这个位),抽出的牌放到新数组中。2.交换法:每个位置的牌,随机与另外一个位置的牌交换位置。3.插牌法:实现类似于交换法。牌堆里先有1张牌,然后第二张牌可以插两个地方——第一张牌的前或后,第3张牌,有3个地方可插……#include #include #include #include void
2014-05-04 00:09:16
363
原创 算法竞赛入门经典 习题2-10排列数字1~9形成1:2:3的等比数列
#include int main(){ for (int i = 1; i < 10; ++i){//1 i for (int j = 1; j < 10; ++j){//2 j if (j == i) continue; for (int k = 1; k < 10; ++k){//3 k if (k == i || k == j) continue; fo
2014-05-04 00:08:30
659
原创 算法竞赛入门经典 习题2-9分数化小数
#include int main(){ int a, b, n; scanf("%d%d%d", &a, &b, &n); int integer = a / b; int *tmp = new int[n]; int count = 0; int r = a % b; while (count < n){ tmp[count++] = r * 10 / b; r =
2014-05-04 00:07:43
699
原创 算法竞赛入门经典 习题2-3剩余数定理+最大公约数/最小公倍数
//剩余数定理(韩信点兵)#include int gcd(int a, int b){ if (a < b){ a = a ^ b; b = a ^ b; a = a ^ b; }//交换变量 int tmp = a % b; if (tmp == 0){ return b; } else{ return gcd(b, tmp); }}int main(
2014-05-04 00:07:06
573
原创 算法竞赛入门经典 浮点数陷阱
//浮点数陷阱#include int main(int argc, char *argv[]){ double i;#define PRECISION 0.0000000000001 for (i = 0; !(i 10 - PRECISION); i += 0.1){ printf("%.12lf\n", i); } return 0;}
2014-05-04 00:06:09
463
原创 算法竞赛入门经典 运行时间统计
//对运行时间计时#include #include int main(int argc, char *argv[]){ //freopen("input.txt", "r", stdin); //freopen("output.txt", "w", stdout); FILE *fin, *fout; fin = fopen("data.in", "rb"); fout = fo
2014-05-04 00:05:08
445
原创 算法竞赛入门经典 浮点数的最大值和精度
//各类浮点数的最大值和精度#include #include int main(){ printf("%f\n", FLT_MAX); printf("%f\n\n", FLT_EPSILON); printf("%f\n", DBL_MAX); printf("%e\n\n", DBL_EPSILON); printf("%f\n", LDBL_MAX); printf("%
2014-05-04 00:04:16
798
原创 算法竞赛入门经典 例3-3竖式问题
#include #include int main(){ char range[10]; scanf("%s", range); int count = 0; for (int abc = 100; abc <= 999; ++abc){ for (int de = 10; de <= 99; ++de){ int x = abc * (de % 10); int y
2014-05-04 00:03:01
462
原创 算法竞赛入门经典 例3-1开灯问题
#include #include bool light[100];int main(){ int n = 7; int k = 3; memset(light, false, sizeof(light)); for (int i = 1; i <= k; ++i){ for (int j = 1; j * i <= n; ++j){ light[j * i] = !lig
2014-05-04 00:02:07
571
原创 算法竞赛入门经典 例3-2蛇形填数
#include #include int arr[10][10];int main(){int n = 4;memset(arr, 0, sizeof(arr));int x = 0;int y = n - 1;int count = arr[x][y] = 1;while (count while (x + 1 arr[++x][y] = ++cou
2014-05-04 00:00:43
424
原创 算法竞赛经典入门 例3-4最长回文串
#include #include #include int main(){ char buff[50] = { "Confuciuss say: Madam, I'm Adam." }; printf("%s\n", buff); int maxLen = 0, maxBeg = -1, maxEnd = -1; for (int i = 0; i < strlen(buff)/*
2014-05-03 23:59:27
504
原创 算法竞赛入门经典 3.4.4重新实现库函数
//getch()#include #include int getC(void){ static char buff[100]; static char *bb = buff; static int n = 0; if (n == 0){ n = _read(0, buff, 100); bb = buff; } return (--n > 0) ? (unsigned
2014-05-03 21:28:08
366
原创 算法竞赛入门经典 习题3-2单词们的平均长度
#include #include #include char* trim(char *str){ while (*str == ' '){ ++str; } return str;}int main(){ int n = 0; int len = 0; int sum = 0; char buf[200]; memset(buf, '\0', sizeof(buf)
2014-05-03 21:27:17
752
原创 算法竞赛入门经典 习题3-3乘积的末3位
#include #include #include int main(){ char ch = EOF; char in[500]; char buf[500]; memset(in, '\0', sizeof(in)); memset(buf, '\0', sizeof(buf)); int i = 0; while ((ch = getchar()) != '\n' &
2014-05-03 21:26:31
509
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人