题目1 : 提取用户名

时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

在现在的各种互联网应用中,在一段文字中使用'@'字符来提起一名用户是流行的做法。

例如:

"@littleho submitted his code 30 times before he got passed the system test."

其中littleho就是一个用户名。我们规定在一段文字中,'@'字符之后一段连续的、非空的大小写英文字母组成的字符串被视为提起的用户名。

给定一段文字,请你输出其中所有提到的用户名。

输入

一行文本,只包含大小写字母、标点符号和空格。长度不超过800。

输出

按文本中的顺序输出所有提到的用户名,之间用一个空格隔开。重复提到的相同用户名也重复输出。

样例输入
@abc:@@,@littleho's code is so confusing. @abc.
样例输出
abc littleho abc

无脑模拟,直接写就好了,但是要记得回退

#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
getline(cin,s);
for(int i=;s[i];i++)
{
if(s[i]=='@')
{
string c;
i++;
for(;s[i];i++)
if(s[i]>='A'&&s[i]<='Z'||s[i]>='a'&&s[i]<='z')
c+=s[i];
else break;
if(c.length())
{cout<<c<<" ";}
if(s[i]=='@')i--;
} }
return ;
}

题目2 : 股票价格II

时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

小Hi最近在关注股票,为了计算股票可能的盈利,他获取了一只股票最近N天的价格A1~AN。

在小Hi的策略中,每天可以在下列三种操作中选取一种:

1.什么也不做;

2.按照当天的价格买进一个单位的股票;

3.按照当天的价格卖出部分或所有股票。

现在小Hi希望能够知道,如果在N天前手中持有的股票数为0,并且假设拥有无限的金钱,在这N天结束能够获得的最大利润是多少?

输入

第一行包含一个整数N。

第二行包含N个整数,A1, A2, ... AN。

对于30%的数据, 1 ≤ N ≤ 103

对于100%的数据,1 ≤ N ≤ 106, 1 ≤ Ai ≤ 100

输出

输出这N天结束能够获得的最大利润。

样例输入
5
1 2 3 4 5
样例输出
10

这个题目只要维护最高点就可以了,

相当于其他天都在买,等到最高点卖就行了

我把数组开小了,真是让人愁人

#include<bits/stdc++.h>
using namespace std;
const int N=1e6+;
int a[N],b[N];
int main()
{
int n;
scanf("%d",&n);
for(int i=; i<=n; i++)
{
scanf("%d",&a[i]);
b[i]=a[i]+b[i-];
}
b[n+]=-;
int s=;
for(int i=n; i>; i--)
{
b[i]=max(b[i+],a[i]);
s+=b[i]-a[i];
}
printf("%d",s);
return ;
}

题目3 : 小Hi的生成树计数

时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

小Hi最近对生成树(包含所有顶点的联通无环子图。)非常的感兴趣,他想知道对于特定的简单平面无向图是不是存在求生成树个数的简单方法。

小Hi定义了这样的图:一个以{0,1,2……n}为顶点的图,顶点0与其他n个顶点直接相连,对于顶点i(1 ≤ i < n),顶点i与顶点i+1连有一条边。下面是小Hi画的图n=4的图:

请求出对于任意n,这样的图的生成树个数。

输入

多组数据,每组数据一行,包括一个整数n

30%的数据(1 ≤ n ≤ 100),组数不超过10组

70%的数据(1 ≤ n ≤ 1000000),组数不超过10组

100%的数据(1 ≤ n ≤ 1000000000),组数不超过10组

输出

每组数据输出一个行包括一个整数,代表了图的生成树个数(对1000000007取模)。

样例输入
2
样例输出
3

找规律的题,不,其实是让你找到状态转移方程的

f[i][0]表示第i个点选择完毕,其连通性为0的方案数
则f[i+1][0]=f[i][0](i+1只与i有边,拯救了i的连通性,却没解决自己的)
+f[i][1](i+1没有边连)
f[i+1][1]=f[i][1]*2(i+1与i连边,或者与0连边,解决了自己的连通性)
+f[i][0]

an=2*an-1+an-2+……+a1+a0

a1=1,a0=1

#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
LL A[][], B[][], C[][], n;
const LL MD = 1e9+;
struct MX
{
int v[][];
void O()
{
memset(v,,sizeof(v));
}
void E()
{
memset(v,,sizeof(v));
for (int i = ; i < ; ++i)
v[i][i] = ;
}
MX operator * (const MX &b) const
{
MX c;
c.O();
for (int k = ; k < ; ++k)
{
for (int i = ; i < ; ++i)
if (v[i][k])
{
for (int j = ; j < ; ++j)
{
c.v[i][j] = (c.v[i][j] + (LL)v[i][k] * b.v[k][j]) % MD;
}
}
}
return c;
}
MX operator ^ (LL p) const
{
MX y;
y.E();
MX x;
memcpy(x.v, v, sizeof(v));
while (p)
{
if (p & )y = y * x;
x = x * x;
p >>= ;
}
return y;
}
} a, b, c;
int main()
{
a.O();
a.v[][] = ;
a.v[][] = ;
b.O();
b.v[][] = ;
b.v[][] = ;
b.v[][] = ;
b.v[][] = ;
LL n;
while (cin>>n)
{
cout<<(a * (b ^ (n - ))).v[][]<<endl;
}
return ;
}

按照3*3的矩阵也能做

hiho[Offer收割]编程练习赛30的更多相关文章

  1. hihocoder [Offer收割]编程练习赛4

    描述 最近天气炎热,小Ho天天宅在家里叫外卖.他常吃的一家餐馆一共有N道菜品,价格分别是A1, A2, ... AN元.并且如果消费总计满X元,还能享受优惠.小Ho是一个不薅羊毛不舒服斯基的人,他希望 ...

  2. hihocoder [Offer收割]编程练习赛61

    [Offer收割]编程练习赛61 A:最小排列 给定一个长度为m的序列b[1..m],再给定一个n,求一个字典序最小的1~n的排列A,使得b是A的子序列. 贪心即可,b是A的子序列,把不在b中的元素, ...

  3. [Offer收割]编程练习赛46

    [Offer收割]编程练习赛46赛后题解 A.AEIOU 分析

  4. hiho #1283 hiho密码 [Offer收割]编程练习赛3

    #1283 : hiho密码 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho根据最近在密码学课上学习到的知识,开发出了一款hiho密码,这款密码的秘钥是这样生成的 ...

  5. hiho #1272 买零食 [Offer收割]编程练习赛2

    #1272 : 买零食 时间限制:5000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho很喜欢在课间去小卖部买零食.然而不幸的是,这个学期他又有在一教的课,而一教的小卖部姐姐以冷若冰 ...

  6. hihocoder offer收割编程练习赛11 A hiho字符串

    思路: 我用的尺取. 注意题目描述为恰好2个'h',1个'i',1个'o'. 实现: #include <iostream> #include <cstdio> #includ ...

  7. HihoCoder1641 : 热门号码([Offer收割]编程练习赛37)(模拟)

    描述 1 2 3 ABC DEF 4 5 6 GHI JKL MNO 7 8 9 PQRS TUV WXYZ * 0 # 我们知道电话拨号盘上数字会有若干字母对应,例如2对应ABC,7对应PQRS. ...

  8. [Offer收割]编程练习赛48

    题目1 : 折线中点 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定平面上N个点P1, P2, ... PN,将他们按顺序连起来,形成一条折线. 请你求出这条折线的 ...

  9. [Offer收割]编程练习赛5-1 小Ho的防护盾

    #1357 : 小Ho的防护盾 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 小Ho的虚拟城市正在遭受小Hi的攻击,小Hi用来攻击小Ho城市的武器是一艘歼星舰,这艘歼星 ...

随机推荐

  1. iOS-浅谈runtime运行时机制02-runtime简单使用

    http://blog.csdn.net/jiajiayouba/article/details/44201079 由于OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方 ...

  2. ftp和sftp

    一.ftp ftp是文件传输协议,ftp协议包括两部分,一个是ftp客户端,另一个是ftp服务器. 原理:一般情况下,当使用FTP服务的时候,我们都知道默认是21号端口,其实还有一个20号端口.FTP ...

  3. POJ Dollar Dayz 美元假日(完全背包,常规+大数)

    题意:给出整数n和k,n代表拥有的钱数量,k代表有k种工具,其价钱分别为1~k.求n元能有多少种购买的方案. 思路:k最大有100,数量过大,要用大数.其他的基本和完全背包一样. #include & ...

  4. SAP C4C Opportunity和SAP ERP Sales流程的集成

    首先在C4C里创建一个新的Opportunity: 给这个Opportunity添加一个新的产品: 点按钮:Request Pricing, 从ERP抓取pricing数据,点按钮之前Negotiat ...

  5. HDU 5451 Best Solver(fibonacci)

    感谢这道题让我复习了一遍线代,还学习了一些奇奇怪怪的数论. 令 二项展开以后根号部分抵消了 显然有 所以要求的答案是 如果n比较小的话,可以直接对二项式快速幂,但是这题n很大 这个问题和矩阵的特征值以 ...

  6. string 的用法

    上次,我在" Anton And Danik "中为大家介绍了 string 的部分用法 今天,我就再来为大家介绍一下 string 的其他用法 : ( 有可能已经讲过了,不要介意 ...

  7. javaweb基础(6)_servlet配置参数

    一.ServletConfig讲解 1.1.配置Servlet初始化参数 在Servlet的配置文件web.xml中,可以使用一个或多个<init-param>标签为servlet配置一些 ...

  8. github:Commit failed - exit code 1 received

    问题 使用github desktop 将项目提交到github,但提示Commit failed - exit code 1 received 开始以为名称过程,把名称改短,但还是失败. 原因 因为 ...

  9. ssh整合思想 Spring与Hibernate的整合ssh整合相关JAR包下载 .MySQLDialect方言解决无法服务器启动自动update创建表问题

    除之前的Spring相关包,还有structs2包外,还需要Hibernate的相关包 首先,Spring整合其他持久化层框架的JAR包 spring-orm-4.2.4.RELEASE.jar  ( ...

  10. 关于C与C++的区别

    笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解 ...