POJ2511(今天是个失败的题解,未能AC,求帮忙纠正)

2024-02-05 08:38

本文主要是介绍POJ2511(今天是个失败的题解,未能AC,求帮忙纠正),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目就是类似背包问题,给容量为10的书架选情感值较大的书,并且这些书相邻的是不能在相同位置是相同的字母。

TLE超时了,今天是个失败的题解,求帮忙呀!

#include<iostream>
#include<cstring>
#include<cstdio>
#include<algorithm>
#include<vector>
using namespace std;
struct node {int val;char pre[101];char cur[101];
}a[2501];
bool cmp(node a, node b)
{if (strcmp(a.cur, b.cur) < 0)return 1;elsereturn 0;
}
bool del(char* a, char* b)
{   int i=0;while (a[i] != '\0' && b[i] != '\0'){if (a[i] == b[i])return true;i++;}return false;
}
int main()
{int n;scanf("%d", &n);for (int i = 0; i < n; i++){scanf("%d",&a[i].val); int sub = 0; int  sub1 = 0;char ch;ch = getchar();cin.getline(a[i].pre,100);while((ch=a[i].pre[sub++])!='\0'){if(ch!='\''&&ch!=' '){   if(ch>='A'&&ch<='Z')a[i].cur[sub1++]=ch+32;elsea[i].cur[sub1++]=ch;}}}sort(a, a + n, cmp);vector<node>ans[2501][11];int data[2501][11] = { 0 };for (int i = 1; i <= n; i++){   for (int j = 1; j <= 10; j++){int k = i-1;while (ans[k][j - 1].size() != 0 && del(a[i - 1].cur, ans[k][j - 1][ans[k][j - 1].size() - 1].cur)){   k -= 1;if (k == 0)break;}data[i][j] = data[k ][j - 1] + a[i - 1].val;ans[i][j] = ans[k][j - 1];ans[i][j].push_back(a[i - 1]);if (data[i][j] < data[i - 1][j]){data[i][j] = data[i - 1][j];ans[i][j] = ans[i - 1][j];}}}printf("%d\n%d\n", ans[n][10].size(), data[n][10]);for (int i = 0; i < ans[n][10].size(); i++){printf("%s\n", ans[n][10][i].pre);}return 0;
}

这篇关于POJ2511(今天是个失败的题解,未能AC,求帮忙纠正)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/680344

相关文章

LeetCode11. 盛最多水的容器题解

LeetCode11. 盛最多水的容器题解 题目链接: https://leetcode.cn/problems/container-with-most-water 示例 思路 暴力解法 定住一个柱子不动,然后用其他柱子与其围住面积,取最大值。 代码如下: public int maxArea1(int[] height) {int n = height.length;int

加载资源文件失败

背景         自己以前装了一个海康的深度学习算法平台,试用期是一个月,过了一个月之后,因为没有有效注册码或者加密狗的支持了导致无法使用,于是打算卸载掉,在卸载一个软件的时候,无论是使用控制面板还是软件自带的卸载功能,总是卸载不掉,提示“加载资源文件失败”。该软体主要包括以下两部分: 用自带卸载功能卸载的时候分别提示如下:     用控制面板卸载的时候反应很慢,最后也是提示这个

yum install 失败报错`XZ_5.1.2alpha' not found (required by /lib64/librpmio.so.3)

/export/env/py3.6/lib/liblzma.so.5: version `XZ_5.1.2alpha' not found (required by /lib64/librpmio.so.3)   到/export/env/py3.6/lib cp /lib64/liblzma.so.5.2.2 . sudo ln -s -f liblzma.so.5.2.2 liblzm

VS2012加载失败

1、通过命令提示行工具进入VS安装目录下的Common7\IDE 2、执行devenv.exe /setup /resetuserdata /resetsettings 3、重启VS

今天又有了别的收获。青云怎么这么厉害呢- -。。感觉无论付出多么大的努力,和他差不多就行~~

1.第一个收获就是一个宏这个宏第一个参数是函数的类型,第二个是名字,第三个其实就是setRow(),getRow(),两个方法,为的就是让我们得到对象。嘿嘿,收获不小~~ 2.比如我们定义了一个宏#define WC (6) 我们调用一个方法,suShi->m_imgIndex=rand()%WC  ;表示取0-WC-1的整数值。。 3.为了更好的适配各种环境在applicatio

LeetCode:经典题之141、142 题解及延伸

系列目录 88.合并两个有序数组 52.螺旋数组 567.字符串的排列 643.子数组最大平均数 150.逆波兰表达式 61.旋转链表 160.相交链表 83.删除排序链表中的重复元素 389.找不同 1491.去掉最低工资和最高工资后的工资平均值 896.单调序列 206.反转链表 92.反转链表II 141.环形链表 142.环型链表 目录 系列目录141. 环形链表常量因子 1

C语言 | Leetcode C语言题解之第188题买卖股票的最佳时机IV

题目: 题解: int maxProfit(int k, int* prices, int pricesSize) {int n = pricesSize;if (n == 0) {return 0;}k = fmin(k, n / 2);int buy[k + 1], sell[k + 1];memset(buy, 0, sizeof(buy));memset(sell, 0, size

6月21日训练 (东北林业大学)(个人题解)

前言:   这次训练是大一大二一起参加的训练,总体来说难度是有的,我和队友在比赛时间内就写出了四道题,之后陆陆续续又补了了三道题,还有一道题看了学长题解后感觉有点超出我的能力范围了,就留给以后的自己吧。话不多说,上正文。 正文:   Problem:A 幸运数字: #include <bits/stdc++.h>using namespace std;int sum,ans;in

LeetCode:经典题之389 题解与延伸

系列目录 88.合并两个有序数组 52.螺旋数组 567.字符串的排列 643.子数组最大平均数 150.逆波兰表达式 61.旋转链表 160.相交链表 83.删除排序链表中的重复元素 389.找不同 1491.去掉最低工资和最高工资后的工资平均值 896.单调序列 206.反转链表 92.反转链表II 141.环形链表 142.环型链表 目录 系列目录389.找不同哈希表