CSU 1729: 齿轮传动
2016-07-27 12:46
357 查看
题目:
为1:1,老板要求你取走最少的齿轮,不能改变齿轮原来的相对位置,满足条件,即齿轮种类组合起
来是回文串。
不过无所谓,反正就是去掉一些数字,剩下的构成回文串。
我是用动态规划做的,时间比较长,696ms
代码:
#include<iostream>;
using namespace std;
int main()
{
int t;
cin >> t;
int n;
while (t--)
{
cin >> n;
int *a = new int[n];
for (int i = 0; i < n; i++)cin >> a[i];
int **list = new int *[n];
for (int i = 0; i < n; i++)list[i] = new int[n];
for (int i = 0; i < n; i++)for (int j = 0; j < n; j++)list[i][j] = 0;
for (int i = 0; i < n; i++)list[i][i] = 1;
for (int i = n-1; i >=0 ; i--)
{
for (int j = i + 1; j < n; j++)
{
list[i][j] = list[i + 1][j];
if (list[i][j - 1]>list[i][j])list[i][j] = list[i][j - 1];
if (list[i + 1][j - 1] + 2>list[i][j] && a[i] == a[j])list[i][j] = list[i + 1][j - 1] + 2;
}
}
cout << n - list[0][n - 1]<<endl;
}
return 0;
}
Description
你在一家机械厂打工,你的老板让你把一组齿轮种类序列a1,a2,..,an取走几个让齿轮的传动比为1:1,老板要求你取走最少的齿轮,不能改变齿轮原来的相对位置,满足条件,即齿轮种类组合起
来是回文串。
Input
多组数据,第一行有一个整数T , 表示有T组数据。(T<=100)以下每组数据第一行有一个整数n , 表示n个齿轮(1<=n<=1000)接下来一行有n个整数a1,a2,…,an表示齿轮种类 (1<=ai<=10000)Output
取走的最少齿轮数Sample Input
1 4 1 2 3 1
Sample Output
1这个题目,传动比为1:1是什么意思,其实我不太理解。
不过无所谓,反正就是去掉一些数字,剩下的构成回文串。
我是用动态规划做的,时间比较长,696ms
代码:
#include<iostream>;
using namespace std;
int main()
{
int t;
cin >> t;
int n;
while (t--)
{
cin >> n;
int *a = new int[n];
for (int i = 0; i < n; i++)cin >> a[i];
int **list = new int *[n];
for (int i = 0; i < n; i++)list[i] = new int[n];
for (int i = 0; i < n; i++)for (int j = 0; j < n; j++)list[i][j] = 0;
for (int i = 0; i < n; i++)list[i][i] = 1;
for (int i = n-1; i >=0 ; i--)
{
for (int j = i + 1; j < n; j++)
{
list[i][j] = list[i + 1][j];
if (list[i][j - 1]>list[i][j])list[i][j] = list[i][j - 1];
if (list[i + 1][j - 1] + 2>list[i][j] && a[i] == a[j])list[i][j] = list[i + 1][j - 1] + 2;
}
}
cout << n - list[0][n - 1]<<endl;
}
return 0;
}
相关文章推荐
- 二叉搜索树
- 浅析android事件分发机制
- PAT 1086
- 常用容易混淆的css集合
- PreparedStatement和Statement区别
- 简单命令
- 嵌入式学习-驱动开发-lesson1-字符设备驱动模型
- UVA 10518
- tjut 4612
- C++学习笔记——Mat类详解及元素的遍历方法
- 谁才是最快的消息队列:ActiveMQ, RabbitMQ[转]
- CSU 1727: The Fake Coin
- LightOJ 1364 Expected Cards(724训练题目)
- Android开发之Intent.Action
- 嵌入式常用算法:时间触发下的嵌入式软件设计模式
- CodeForces 385E
- Android Studio编译FBReaderJ
- 2002 计算球体积
- 矩阵基础1009 CodeForces 392C 好题,超级推荐
- 复选框单选框与文字对齐问题的研究与解决