博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDOJ(~1004)
阅读量:5295 次
发布时间:2019-06-14

本文共 4812 字,大约阅读时间需要 16 分钟。

T1000

1 #include 
2 int main()3 {4 int a, b;5 while (scanf("%d %d", &a, &b) != EOF)6 printf("%d\n", a + b);7 return 0;8 }

T1001

1 #include 
2 #ifdef AUTHOR 3 Code By Hatsuakira Tenan 4 #endif 5 int f(int n) 6 { 7 int js = 0; 8 for (; n > 0; --n) 9 js += n;10 return js;11 }12 int main()13 {14 int n;15 while (scanf("%d", &n) != EOF)16 printf("%d\n\n", f(n));17 return 0;18 }

T1002

1 #include 
2 #include
3 #include
4 #include
5 #define MAXLENGTH 1002 6 #define MAXCARRY 10000 7 #ifdef AUTHOR 8 Code By Hatsuakira Tenan 9 #endif10 struct largeint11 {12 int num[MAXLENGTH], len;13 largeint()14 {15 len = 1;16 memset(num, 0, sizeof(num));17 }18 };19 void scanf_override(largeint &input)20 {21 int tmplen;22 char tmp[MAXLENGTH];23 scanf("%s", tmp);24 std::reverse(tmp, tmp + (tmplen = strlen(tmp)));25 input.len = tmplen / 4 + (tmplen % 4 > 0);26 for (int i = 0, j = 0; i < tmplen; ++i, ++j)27 {28 input.num[j] = tmp[i] - '0';29 if (tmp[++i] == '\0')30 break;31 input.num[j] += 10 * (tmp[i] - '0');32 if (tmp[++i] == '\0')33 break;34 input.num[j] += 100 * (tmp[i] - '0');35 if (tmp[++i] == '\0')36 break;37 input.num[j] += 1000 * (tmp[i] - '0');38 }39 }40 inline largeint operator +(largeint a, largeint b)41 {42 int tmp = 0;43 a.len = std::max(a.len, b.len);44 for (int i = 0; i < a.len; ++i)45 {46 a.num[i] += b.num[i] + tmp;47 tmp = a.num[i] / MAXCARRY;48 a.num[i] %= MAXCARRY;49 }50 if (tmp > 0)51 a.num[a.len++] = 1;52 return a;53 }54 void printf_override(largeint output)55 {56 printf("%d", output.num[--output.len]);57 for (int i = output.len - 1; i > -1; --i)58 printf("%04d", output.num[i]);59 }60 void work(int k)61 {62 largeint a = largeint(), b = largeint();63 scanf_override(a);64 scanf_override(b);65 printf("Case %d:\n", k + 1);66 printf_override(a);67 printf(" + ");68 printf_override(b);69 printf(" = ");70 a = a + b;71 printf_override(a);72 printf("\n");73 }74 int main()75 {76 int T;77 scanf("%d", &T);78 work(0);79 for (int i = 1; i < T; ++i)80 { printf("\n"); work(i); }81 return 0;82 }

 T1003

最长连续子序列和, 根据数据范围(N<=100, 000 & T<=20)选择使用O(n)的算法, 是较为基础的动态规划.

1 #include 
2 #include
3 #define MAXLENGTH 100005 4 #ifdef AUTHOR 5 Code By Hatsuakira Tenan 6 #endif 7 int number[MAXLENGTH], start, end, max; 8 void dp(int length) 9 {10 int max_tmp = 0, start_tmp = 0, end_tmp = 0;11 max_tmp = max = INT_MIN;12 for (int i = 0; i < length; ++i)13 {14 if (max_tmp < 0)15 {16 if (number[i] > max_tmp)17 {18 max_tmp = number[i];19 start_tmp = end_tmp = i;20 if (max < max_tmp)21 {22 max = max_tmp;23 start = start_tmp;24 end = end_tmp;25 }26 }27 }28 else29 {30 max_tmp += number[i];31 end_tmp = i;32 if(max_tmp > max)33 {34 max = max_tmp;35 start = start_tmp;36 end = end_tmp;37 }38 }39 }40 }41 void work(int R)42 {43 printf("Case %d:\n", R);44 int n;45 scanf("%d", &n);46 for (int i = 0; i < n; ++i)47 scanf("%d", &number[i]);48 dp(n);49 printf("%d %d %d\n", max, start + 1, end + 1);50 }51 int main()52 {53 int T;54 scanf("%d", &T);55 for (int i = 1; i < T; printf("\n"), ++i)56 work(i);57 work(T);58 return 0;59 }

 T1004 用STL 做这个题很耍赖, 但是鉴于数据量不大所以直接暴力遍历也是可以的.

1 #include 
2 #include
3 #include
4 #include
5 using std::map; 6 using std::string; 7 map
set; 8 void work(int n) 9 {10 set.clear();11 int maxn = -1;12 string tmp_stl_string;13 char tmp_string[21];14 for (int i = 0; i < n; tmp_stl_string = tmp_string, ++set[tmp_stl_string], ++i)15 scanf("%s", tmp_string);16 for (map
::iterator it = set.begin(); it != set.end(); ++it)17 if (maxn < it -> second)18 {19 maxn = it -> second;20 tmp_stl_string = it -> first;21 }22 printf("%s\n", tmp_stl_string.c_str());23 }24 int main()25 {26 int n;27 scanf("%d", &n);28 while (n > 0)29 {30 work(n);31 scanf("%d", &n);32 }33 return 0;34 }

 

转载于:https://www.cnblogs.com/hatsuakiratenan/p/3362962.html

你可能感兴趣的文章
【转载】测试计划模板
查看>>
pandas 修改指定列中所有内容
查看>>
ubuntu18.04 复制或剪切某文件夹下的前x个文件到另一个文件夹下
查看>>
input的value中有特殊字符
查看>>
字符串压缩
查看>>
用Lua定制Redis命令
查看>>
小程序-canvas在IOS手机层级最高无法展示问题
查看>>
「 Luogu P2285 」打鼹鼠
查看>>
lua语言入门之Sublime Text设置lua的Build System
查看>>
解决win8使用内置管理员不能打开应用商城、天气等问题
查看>>
vue.js基础
查看>>
电脑的自带图标的显示
查看>>
globalization与全球化
查看>>
[转载] redis 的两种持久化方式及原理
查看>>
关于在Idea 创建Maven项目时,无法在source文件下创建servlet文件问题解决!
查看>>
对 HTTP 304 的理解
查看>>
深入理解css中的margin属性
查看>>
C++ 删除字符串的两种实现方式
查看>>
电容选型
查看>>
ORA-01502: 索引'P_ABCD.PK_WEB_BASE'或这类索引的分区处于不可用状态
查看>>