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. NSAssert使用摘抄

    #define NSAssert(condition, desc, ...) 只有条件condition满足,才会执行下一个语句,否则输出断言错误. 例如: NSAssert(1 != 2, @&qu ...

  2. CSS水平、垂直居中小结

    我们在实际工作中经常会遇到需要水平居中或者垂直居中的场景,今天我们就来看一下如何设置水平居中和垂直居中. 首先来看水平居中. 一.水平居中设置-行内元素. 如果被设置元素为文本.图片等行内元素时,水平 ...

  3. 使用text-overflow:ellipsis对溢出文本显示省略号有两个好处

    使用text-overflow:ellipsis对溢出文本显示省略号有两个好处,一是不用通过程序限定字数:二是有利于SEO.需要使用对对溢出文本显示省略号的通常是文章标题列表,这样处理对搜索引擎更友好 ...

  4. sjtu1585 oil

    Description Crystal家的公司最近承包了一个大油田.整块油田为一个矩形区域,被划分为\(n \times m\)个小块. Crystal亲自调查了每个小块的石油储备量.这些数据表示为\ ...

  5. [转载]MongoDB 常用命令

    mongodb由C++编写,其名字来自humongous这个单词的中间部分,从名字可见其野心所在就是海量数据的处理.关于它的一个最简洁描述为:scalable, high-performance, o ...

  6. 解决Linux/aix 下的websphere log4j不生效

    websphere 解决Linux/aix下的log4j不生效 在目录: /IBM/WebSphere/AppServer/profiles/AppSrv01/properties 增加一个文件:可以 ...

  7. mysql中实现行号,oracle中的rowid

    mysql中实现行号需要用到MYSQL的变量,因为MySql木有rownumber. MYSQL中变量定义可以用 set @var=0 或 set @var:=0 可以用=或:=都可以,但是如果变量用 ...

  8. Codeforces Round #211 (Div. 2)

    难得一次比赛能够自己成功A掉四个题: A题:水题,模拟一下就行: #include <iostream> #include <cstdio> using namespace s ...

  9. Vmware 8.00 文件共享ubuntu

    http://bolg.sinaapp.com/html/2012/1848.html 这是解决vm不能共享的解决方案. 今天学会的Linux命令: cp -i *** ~/tmp cd VMware ...

  10. SPRING IN ACTION 第4版笔记-第四章ASPECT-ORIENTED SPRING-009-带参数的ADVICE2 配置文件为XML

    一. 1.配置文件为xml时则切面类不用写aop的anotation package com.springinaction.springidol; public class Magician impl ...