qq创新大赛的一道题,求解

life02 2009-05-09 08:29:45
Description

有只企鹅叫豆豆,总是被别的企鹅欺负。豆豆在长期的隐忍之后,掌握了所有企鹅的高度和攻击力强度,还得到了一把黄金剑。在拥有了黄金剑以后,豆豆终于可以展开绝地大反击。但这把黄金剑的用法却很奇怪。

首先,豆豆第一次可以选择任何一只企鹅开始挑战。豆豆这一次必胜。

再次,当豆豆已经挑战过某一只企鹅后,再下一次的挑战对象只能是比上一名对手高,且比上一名对手攻击力强的企鹅。这样豆豆必胜。否则黄金剑会觉得打的没意思而故意发脾气输掉。豆豆还会被大家集体暴打。

面对着这把脾气很大的黄金剑,豆豆想请你帮助他计算一下,他最多可以连续击败多少只企鹅?

Input

第一行:一个数据n,代表企鹅群里除了豆豆一共有n(1 ≤ n ≤ 1000)只企鹅。
第2至第n+1行:每行2个数字。第i+1行的第一个数字为企鹅i的高度。第i+1行的第二个数字为企鹅i的攻击力。0 ≤ 高度,攻击力 ≤ 1,000,000。

Output

一个数。代表豆豆最多可以连续击败的企鹅数。
Sample Input

Sample Input #1 Sample Input #2 31 33 22 4 510 19 27 36 45 5 Sample Output

Sample Output #1 Sample Output #2 2 1
...全文
232 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
iambic 2009-05-10
  • 打赏
  • 举报
回复
这种题目和创新有什么关系?
threeleafzerg007 2009-05-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 life02 的回复:]
我是先按身高排序,然后在按攻击力找出最大递增子序列
这个不对吧
比如:
1 5
2 7
3 10
4 8
9 6
10 7
11 8
这个找子序列不成吧
我是求最长路径有的是佛洛依德算法
不过太慢,佩服他们用单循环写算法
望哪位大侠发发答案,仰慕一下
[/Quote]

就是单单1维的排序 最快的也就nlogn ,何况这里牵涉2维的情况。。。 单循环不可思议,如果有俺倒很想见识
liao05050075 2009-05-10
  • 打赏
  • 举报
回复
先排序,再找最长上升了序列就可以AC
f22fbi 2009-05-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 iambic 的回复:]
这种题目和创新有什么关系?
[/Quote]
没关系
就是ACM
噱头而已
strive0 2009-05-10
  • 打赏
  • 举报
回复
大虾快发答案,偶学习学习。。。
life02 2009-05-09
  • 打赏
  • 举报
回复
我是先按身高排序,然后在按攻击力找出最大递增子序列
这个不对吧
比如:
1 5
2 7
3 10
4 8
9 6
10 7
11 8
这个找子序列不成吧
我是求最长路径有的是佛洛依德算法
不过太慢,佩服他们用单循环写算法
望哪位大侠发发答案,仰慕一下
shexinwei 2009-05-09
  • 打赏
  • 举报
回复
不懂,帮顶!!
wwwypy 2009-05-09
  • 打赏
  • 举报
回复
我是先按身高排序,然后在按攻击力找出最大递增子序列。
evilhacker 2009-05-09
  • 打赏
  • 举报
回复
学习了~
瞌睡不醒 2009-05-09
  • 打赏
  • 举报
回复
我的答案。。。不知道是不是有疏忽。。输入例子没什么问题啊。。就是说我wrong answer-_-!
#include <iostream>
using namespace std;
int main()
{
int n,i,j,temp1,temp2,sum1=1,sum2=1,*high,*power;
cin>>n;
high=(int *)malloc(n*sizeof(int));
power=(int *)malloc(n*sizeof(int));
for (i=0;i<n;i++)
{
cin>>high[i]>>power[i];
}
for (j=0;j<n;j++)
for (i=0;i<n-1;i++)
{
if (high[i]>high[i+1])
{
temp1=high[i];
temp2=power[i];
high[i]=high[i+1];
power[i]=power[i+1];
high[i+1]=temp1;
power[i+1]=temp2;
}
}
for (i=0;i<n-1;i++)
{
if (power[i]<power[i+1])sum1++;
else
{
power[i]=power[i+1];
high[i]=high[i+1];
}
}
for (j=0;j<n;j++)
for (i=0;i<n-1;i++)
{
if (power[i]>power[i+1])
{

temp1=high[i];
temp2=power[i];
high[i]=high[i+1];
power[i]=power[i+1];
high[i+1]=temp1;
power[i+1]=temp2;
}
}
for (i=0;i<n-1;i++)
{
if (high[i]<high[i+1]) sum2++;
else
{
high[i]=high[i+1];
power[i]=power[i+1];
}
}
if (sum1>=sum2) cout<<sum1<<endl;
else cout<<sum2<<endl;
free(high);
free(power);
return 0;
}
life02 2009-05-09
  • 打赏
  • 举报
回复
#include <iostream>
using namespace std;



int main(){

int loop;
int v;
cin>>loop;
int** qq=new int*[loop];
//输入
for(int i1=0;i1<loop;i1++){
qq[i1]=new int[2];
for(int j1=0;j1<2;j1++){
cin>>v;
*(qq[i1]+j1)=v;
}
}
//step1获得权值矩阵
int** D=new int*[loop];
for(int i=0;i<loop;i++){
D[i]=new int[loop];
for(int j=0;j<loop;j++){
if((qq[i][0]>qq[j][0])&&(qq[i][1]>qq[j][1])){
*(D[i]+j)= 1;
}else{
*(D[i]+j)= 0;
}
}
}
//step2 floyd算法得到任意两点间的权值矩阵
for(int k=0;k<loop;k++){
for(int i=0;i<loop;i++){
for(int j=0;j<loop;j++){
if(
(D[i][k]!=0)&&(D[k][j]!=0)&&(D[i][j]<(D[i][k]+D[k][j]))){
D[i][j]=D[i][k]+D[k][j];
}

}
}

}
//STEP3 求该矩阵最大值
int max=0;
for(int i3=0;i3<loop;i3++){
for(int j3=0;j3<loop;j3++){
if(D[i3][j3]>max){
max=D[i3][j3];
}

}
}
cout<<max+1<<endl;
return 0;
}

我的答案,速度太慢,求解高效算法
下载代码方式:https://pan.quark.cn/s/dd3561eca308 在软件开发领域,面向对象编程(OOP)是一种普遍采纳的结构化方法,它使得开发者能够借助模拟现实环境中的实体和关系来构建软件系统。在本案例中,我们观察到的是一个关于借助抽象类来执行不同几何图形面积求解的实践应用。现在,让我们详细分析这一议。 标 "应用抽象类计算面积" 清晰地表明我们将要讨论一个抽象类,此类设定了一个用于测量图形面积的标准函数,但并未提供实际的执行过程。抽象类在诸如C#或Java等编程语言中通常借助`abstract`修饰符进行声明,它们无法直接创建对象实例,仅能作为其他类的基础模板。 描述部分提及的"图形界面应用"暗示这是一个基于视觉用户界面(GUI)的系统,可能运用了.NET Framework的Windows Forms或WPF技术,或者是Java平台的Swing或JavaFX框架。在这样环境下,用户能够通过视觉元素与这些几何体进行互动,例如输入相关尺寸并观看到计算得出的面积值。 抽象类“几何体”内嵌了“计算面积”这一抽象函数。在代码层面,这可以被表述为: ```csharp public abstract class GeometricShape { public abstract double CalculateArea(); } ``` 随后,有三个派生类:圆(Circle)、矩形(Rectangle)和三角形(Triangle),它们各自提供了这个抽象函数的具体实现。比如,圆的面积是通过π乘以半径的平方得到的,矩形的面积是长和宽的乘积,而三角形的面积可能是底乘以高再除以2的结果。这些类将提供具体实现来计算它们各自的面积: ```csharp p...
内容概要:本文系统研究了移相控制全桥LLC谐振变换器的工作特性,深入分析其在不同工作模式下的运行机理与性能表现,重点探讨了软开关实现、高效率能量转换及宽范围电压调节等关键技术优势。通过Simulink搭建精确的仿真模型,对谐振腔参数、开关频率、电压增益、系统效率等关键指标进行仿真分析,验证了理论设计的正确性。同时,详细研究了移相控制策略对系统动态响应、稳定性和轻载/重载工况适应性的影响,揭示了控制参数与电路参数之间的耦合关系,为高频高效电源设计提供了理论依据和实践指导。; 适合人群:具备电力电子技术、模拟电路及自动控制理论基础,从事开关电源、新能源变换器、电动汽车充电模块或高频电源系统研发的工程师及高校研究生。; 使用场景及目标:①掌握全桥LLC谐振变换器的拓扑结构、工作原理与关键参数设计方法;②理解移相控制在实现零电压开通(ZVS)和零电流关断(ZCS)中的作用机制;③通过Simulink仿真掌握变换器建模、参数优化与性能评估流程,服务于实际产品开发与学术课研究。; 阅读建议:建议读者结合提供的Simulink仿真模型进行同步操作,重点关注谐振网络(Lr, Lm, Cr)参数与移相角之间的匹配设计,深入理解软开关条件的形成过程,并通过调整负载和输入电压进行多工况仿真,以全面掌握系统动态特性。

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧