导航:首页 > 源码编译 > 算法题wa

算法题wa

发布时间:2024-09-16 19:13:44

Ⅰ 这道ACM为什么我是WA。

你这个方法只是局部的两个是最大字典序,当全部都这样排好后不一定是最大序。用这样的方法是错的。如果是我,会用一个直接的深度优先搜索,然后中间要进行剪枝(不然会TEL的)。
如果例:
3
cc
cca
b
这里的正确答案是:ccccab
而你的答案是:ccaccb

Ⅱ 杭电ACM 1257 为什么老是WA

这道题目是动态规划哈,不是贪心,是求最长递增子序列的.你可一直接网络一下 单调递增子序列或者直接网络 HDU 1257 你这算法肯定不对 所以错了.

这道题要求最长递增子序列的长度,用二分+DP可求的。

#include <iostream>

using namespace std;

int result[30005]; //用于保存最长递增子序列

int bisearch(int a[],int lenth,int h) //二分查找插入的位子,如h存在,则返回原位置,既不做改变,否则返回比h大的位子
{
int i=0,j=lenth-1,mid;
while(i<=j)
{
mid=(i+j)/2;
if(a[mid]==h)
return mid;
if(a[mid]>h)
j=mid-1;
else
i=mid+1;
}
return i;
}

int main()
{
int n,h,lenth,pos;
while(scanf("%d",&n)!=EOF) //注意写上EOF,否则超时
{
result[0]=30005; //初始化最大,第一次执行的是插入操作
lenth=1;
while(n--)
{
scanf("%d",&h);
if(h>result[lenth-1]) //如果h比排头的大,则将h作为新的排头,长度增加,注意是>不是>=,
//如果有=则表示非递减序列,与题意不符
result[lenth++]=h;
else //否则进行插入操作,将比h大一点的数覆盖,不影响结果
{
pos=bisearch(result,lenth,h);
result[pos]=h;
}
}
printf("%d\n",lenth);
}
return 0;
}

阅读全文

与算法题wa相关的资料

热点内容
鸿蒙系统如何解除app安装限制 浏览:497
阿里云服务器应用镜像选哪个 浏览:343
win7策略更新命令 浏览:299
android源码分析之设计模式 浏览:294
qq邮箱上的文件怎么解压在电脑上 浏览:504
业余学python是如何挣钱的 浏览:416
方舟服务器连接超时显示什么 浏览:226
php绘制emoji 浏览:35
安卓桌面工具怎么删除 浏览:54
外六角螺丝套头算法 浏览:838
程序员特殊招数是什么意思 浏览:351
描述加密过程 浏览:844
我的世界如何开mod服务器 浏览:904
人体写生pdf 浏览:317
android短信验证码倒计时 浏览:641
排课走班源码 浏览:222
程序员刚毕业去了小公司有发展吗 浏览:91
速腾怎么安装安卓手机互联 浏览:145
linux设备驱动程序代码 浏览:301
服务器的功耗怎么看 浏览:652