T1000

 #include <stdio.h>
int main()
{
int a, b;
while (scanf("%d %d", &a, &b) != EOF)
printf("%d\n", a + b);
return ;
}

T1001

 #include <stdio.h>
#ifdef AUTHOR
Code By Hatsuakira Tenan
#endif
int f(int n)
{
int js = ;
for (; n > ; --n)
js += n;
return js;
}
int main()
{
int n;
while (scanf("%d", &n) != EOF)
printf("%d\n\n", f(n));
return ;
}

T1002

 #include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <algorithm>
#define MAXLENGTH 1002
#define MAXCARRY 10000
#ifdef AUTHOR
Code By Hatsuakira Tenan
#endif
struct largeint
{
int num[MAXLENGTH], len;
largeint()
{
len = ;
memset(num, , sizeof(num));
}
};
void scanf_override(largeint &input)
{
int tmplen;
char tmp[MAXLENGTH];
scanf("%s", tmp);
std::reverse(tmp, tmp + (tmplen = strlen(tmp)));
input.len = tmplen / + (tmplen % > );
for (int i = , j = ; i < tmplen; ++i, ++j)
{
input.num[j] = tmp[i] - '';
if (tmp[++i] == '\0')
break;
input.num[j] += * (tmp[i] - '');
if (tmp[++i] == '\0')
break;
input.num[j] += * (tmp[i] - '');
if (tmp[++i] == '\0')
break;
input.num[j] += * (tmp[i] - '');
}
}
inline largeint operator +(largeint a, largeint b)
{
int tmp = ;
a.len = std::max(a.len, b.len);
for (int i = ; i < a.len; ++i)
{
a.num[i] += b.num[i] + tmp;
tmp = a.num[i] / MAXCARRY;
a.num[i] %= MAXCARRY;
}
if (tmp > )
a.num[a.len++] = ;
return a;
}
void printf_override(largeint output)
{
printf("%d", output.num[--output.len]);
for (int i = output.len - ; i > -; --i)
printf("%04d", output.num[i]);
}
void work(int k)
{
largeint a = largeint(), b = largeint();
scanf_override(a);
scanf_override(b);
printf("Case %d:\n", k + );
printf_override(a);
printf(" + ");
printf_override(b);
printf(" = ");
a = a + b;
printf_override(a);
printf("\n");
}
int main()
{
int T;
scanf("%d", &T);
work();
for (int i = ; i < T; ++i)
{ printf("\n"); work(i); }
return ;
}

T1003

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

 #include <stdio.h>
#include <limits.h>
#define MAXLENGTH 100005
#ifdef AUTHOR
Code By Hatsuakira Tenan
#endif
int number[MAXLENGTH], start, end, max;
void dp(int length)
{
int max_tmp = , start_tmp = , end_tmp = ;
max_tmp = max = INT_MIN;
for (int i = ; i < length; ++i)
{
if (max_tmp < )
{
if (number[i] > max_tmp)
{
max_tmp = number[i];
start_tmp = end_tmp = i;
if (max < max_tmp)
{
max = max_tmp;
start = start_tmp;
end = end_tmp;
}
}
}
else
{
max_tmp += number[i];
end_tmp = i;
if(max_tmp > max)
{
max = max_tmp;
start = start_tmp;
end = end_tmp;
}
}
}
}
void work(int R)
{
printf("Case %d:\n", R);
int n;
scanf("%d", &n);
for (int i = ; i < n; ++i)
scanf("%d", &number[i]);
dp(n);
printf("%d %d %d\n", max, start + , end + );
}
int main()
{
int T;
scanf("%d", &T);
for (int i = ; i < T; printf("\n"), ++i)
work(i);
work(T);
return ;
}

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

 #include <stdio.h>
#include <string.h>
#include <map>
#include <string>
using std::map;
using std::string;
map<string, int> set;
void work(int n)
{
set.clear();
int maxn = -;
string tmp_stl_string;
char tmp_string[];
for (int i = ; i < n; tmp_stl_string = tmp_string, ++set[tmp_stl_string], ++i)
scanf("%s", tmp_string);
for (map<string, int>::iterator it = set.begin(); it != set.end(); ++it)
if (maxn < it -> second)
{
maxn = it -> second;
tmp_stl_string = it -> first;
}
printf("%s\n", tmp_stl_string.c_str());
}
int main()
{
int n;
scanf("%d", &n);
while (n > )
{
work(n);
scanf("%d", &n);
}
return ;
}

HDOJ(~1004)的更多相关文章

  1. hdoj 1004 学习思路

    hdoj 1004题目大概讲的是,将输入的字符串根据输入次数多少,输出出现次数最多的字符串. 题目逻辑很简单,就是需要选择相应的数据结构,看了别人提交的discuss,明显发现可以使用多种数据结构解这 ...

  2. HDOJ 1004 Let the Balloon Rise

    Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...

  3. HDOJ 1004题 Let the Balloon Rise strcmp()函数

    Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...

  4. HDOJ 1004 Let the Balloon Rise (字符串+stl)

    题目: Problem Description Contest time again! How excited it is to see balloons floating around. But t ...

  5. 杭电hdoj题目分类

    HDOJ 题目分类 //分类不是绝对的 //"*" 表示好题,需要多次回味 //"?"表示结论是正确的,但还停留在模块阶 段,需要理解,证明. //简单题看到就 ...

  6. 模拟+思维 HDOJ 5319 Painter

    题目传送门 /* 题意:刷墙,斜45度刷红色或蓝色,相交的成绿色,每次刷的是连续的一段,知道最终结果,问最少刷几次 模拟+思维:模拟能做,网上有更巧妙地做法,只要前一个不是一样的必然要刷一次,保证是最 ...

  7. HDOJ 题目分类

    HDOJ 题目分类 /* * 一:简单题 */ 1000:    入门用:1001:    用高斯求和公式要防溢出1004:1012:1013:    对9取余好了1017:1021:1027:   ...

  8. HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序

    FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  9. HDOJ 2317. Nasty Hacks 模拟水题

    Nasty Hacks Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Tota ...

随机推荐

  1. Git权威指南 读笔(1)

    第四章 Git初始化: 设置Git当前用户和邮件地址: $ git config --global user.name $ git config --global user.email 设置Git命令 ...

  2. 取得inputStream的长度

    1.网络下载文件 URL url = new URL(strUrl); HttpURLConnection httpconn = (HttpURLConnection)url.openConnecti ...

  3. bzoj 1314: River过河 优先队列

    1314: River过河 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 26  Solved: 10[Submit][Status][Discuss ...

  4. 用 Maven 做项目构建

    转自:http://www.ibm.com/developerworks/cn/java/j-lo-maven/index.html 本文将介绍基于 Apache Maven 3 的项目构建的基本概念 ...

  5. Javascript编程模式(JavaScript Programming Patterns)Part 2.(高级篇)

    模块编程模式的启示(Revealing Module Pattern) 客户端对象(Custom Objects) 懒函数定义(Lazy Function Definition) Christian  ...

  6. PYTHON多进程样码

    敲了一晚上,留个念想. 发现它和LINUX的C编程差不多,就是作了PYTHON化的语法封装. 以后希望有机会能用上.. A,多进程函数化实现 import multiprocessing import ...

  7. asp.net将数据库中的数据赋给DropDownList

    当你选定一项进行其他操作时会重新绑定dropdownlist,这样会重新回到第一项,在page_load里加上判断if(!IsPostBack){'这里是你需要绑定dropdownlist的代码'}. ...

  8. Java-Swing嵌入浏览器(二)

    这是qtjambi利用webview来做嵌入式浏览器,下面是我的工程目录. 运行效果如下图: 代码相关: package qtBowers; import com.trolltech.qt.core. ...

  9. ActionBar官方教程(4)给ActionBar添加操作项及它们的事件处理

    Adding Action Items The action bar provides users access to the most important action items relating ...

  10. BZOJ_1610_[Usaco2008_Feb]_Line连线游戏_(计算几何基础+暴力)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1610 给出n个点,问两两确定的直线中,斜率不同的共有多少条. 分析 暴力枚举直线,算出来斜率放 ...