HDOJ(~1004)
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)的更多相关文章
- hdoj 1004 学习思路
hdoj 1004题目大概讲的是,将输入的字符串根据输入次数多少,输出出现次数最多的字符串. 题目逻辑很简单,就是需要选择相应的数据结构,看了别人提交的discuss,明显发现可以使用多种数据结构解这 ...
- HDOJ 1004 Let the Balloon Rise
Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...
- HDOJ 1004题 Let the Balloon Rise strcmp()函数
Problem Description Contest time again! How excited it is to see balloons floating around. But to te ...
- HDOJ 1004 Let the Balloon Rise (字符串+stl)
题目: Problem Description Contest time again! How excited it is to see balloons floating around. But t ...
- 杭电hdoj题目分类
HDOJ 题目分类 //分类不是绝对的 //"*" 表示好题,需要多次回味 //"?"表示结论是正确的,但还停留在模块阶 段,需要理解,证明. //简单题看到就 ...
- 模拟+思维 HDOJ 5319 Painter
题目传送门 /* 题意:刷墙,斜45度刷红色或蓝色,相交的成绿色,每次刷的是连续的一段,知道最终结果,问最少刷几次 模拟+思维:模拟能做,网上有更巧妙地做法,只要前一个不是一样的必然要刷一次,保证是最 ...
- HDOJ 题目分类
HDOJ 题目分类 /* * 一:简单题 */ 1000: 入门用:1001: 用高斯求和公式要防溢出1004:1012:1013: 对9取余好了1017:1021:1027: ...
- HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDOJ 2317. Nasty Hacks 模拟水题
Nasty Hacks Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
随机推荐
- Git权威指南 读笔(1)
第四章 Git初始化: 设置Git当前用户和邮件地址: $ git config --global user.name $ git config --global user.email 设置Git命令 ...
- 取得inputStream的长度
1.网络下载文件 URL url = new URL(strUrl); HttpURLConnection httpconn = (HttpURLConnection)url.openConnecti ...
- bzoj 1314: River过河 优先队列
1314: River过河 Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 26 Solved: 10[Submit][Status][Discuss ...
- 用 Maven 做项目构建
转自:http://www.ibm.com/developerworks/cn/java/j-lo-maven/index.html 本文将介绍基于 Apache Maven 3 的项目构建的基本概念 ...
- Javascript编程模式(JavaScript Programming Patterns)Part 2.(高级篇)
模块编程模式的启示(Revealing Module Pattern) 客户端对象(Custom Objects) 懒函数定义(Lazy Function Definition) Christian ...
- PYTHON多进程样码
敲了一晚上,留个念想. 发现它和LINUX的C编程差不多,就是作了PYTHON化的语法封装. 以后希望有机会能用上.. A,多进程函数化实现 import multiprocessing import ...
- asp.net将数据库中的数据赋给DropDownList
当你选定一项进行其他操作时会重新绑定dropdownlist,这样会重新回到第一项,在page_load里加上判断if(!IsPostBack){'这里是你需要绑定dropdownlist的代码'}. ...
- Java-Swing嵌入浏览器(二)
这是qtjambi利用webview来做嵌入式浏览器,下面是我的工程目录. 运行效果如下图: 代码相关: package qtBowers; import com.trolltech.qt.core. ...
- ActionBar官方教程(4)给ActionBar添加操作项及它们的事件处理
Adding Action Items The action bar provides users access to the most important action items relating ...
- BZOJ_1610_[Usaco2008_Feb]_Line连线游戏_(计算几何基础+暴力)
描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1610 给出n个点,问两两确定的直线中,斜率不同的共有多少条. 分析 暴力枚举直线,算出来斜率放 ...