说大题,第一题水,代码:
/**
Author: SpringHack - springhack@live.cn
Last modified: 2016-09-29 19:42:20
Filename: main.cpp
Description: Created by SpringHack using vim automatically.
**/
#include <iostream>
#include <cstdlib>
#include <cstring>
#include <cstdio>
using namespace std;
char S[100010], T[100010], str[260];
int main()
{
memset(str, 0, sizeof(0));
char ch = 'a', cc;
int count = 0;
while (cc = getchar())
{
if (cc >= 'a' && cc <= 'z')
S[count++] = cc;
else
break;
}
S[count] = '\n';
for (int i=0;i<count;++i)
{
if (str[S[i]] == 0)
{
str[S[i]] = ch;
T[i] = ch;
ch++;
} else {
T[i] = str[S[i]];
}
}
T[count] = '\0';
for (int i=0;i<count;++i)
putchar(T[i]);
return 0;
}
第二题WA,代码仅做记录:
/**
var read_line = function () {
var ptr = 0;
var s = [
'3',
'ABC',
'CBA',
'AB'
];
return function () {
return s[ptr++];
};
}();
**/
function lcs(x, y)
{
for (var i=0;i<Math.min(x.length, y.length);++i)
if (x.substring(x.length - i - 1) == y.substring(0, i + 1))
return y.substring(0, i + 1);
return '';
}
var n = parseInt(read_line());
var str = [];
var f = [];
for (var i=0;i<n;++i)
f[i] = [];
for (var i=0;i<n;++i)
str.push(read_line());
for (var i=0;i<n;++i)
for (var j=0;j<n;++j)
{
var ss = lcs(str[i], str[j]);
f[i][j] = ss.length;
}
var max = 0;
var now = 0;
var vis = [];
var qeeue = [];
function dfs(node ,deep)
{
if (deep == n - 1)
{
if (now > max)
max = now;
} else {
for (var i=0;i<n;++i)
if (!vis[i] && i != node)
{
now += f[node][i];
vis[i] = true;
//qeeue.push(str[i]);
dfs(i, deep + 1);
//qeeue.pop();
vis[i] = false;
now -= f[node][i];
}
}
}
for (var i=0;i<n;++i)
{
now = 0;
vis[i] = true;
//qeeue.push(str[i]);
dfs(i, 0);
qeeue.pop();
//vis[i] = false;
}
var ret = 0;
str.forEach(function (item) {
ret += item.length;
});
console.log(ret - max);