128 条题解
-
0香蕉派 LV 9 @ 2009-10-30 11:17:19
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
.....到此一游。。。 -
02009-10-29 20:08:06@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
居然两次才过...... 没考虑同个单词也可以连.....汗!!! -
02009-10-24 12:53:36@
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms舒服!!!!!
-
02009-10-18 15:02:49@
xuxun我错就错在你说的呢
脑残了我,交了3次
第二次我改完后没试样例,悲剧了
-
02009-10-18 00:10:26@
应为要求最长的单词,
所以当两个单词只保留最小的重复个数。
如
2
hexe
exet
最长的为hexexet -
02009-10-15 20:37:11@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms提交三次才过,我真是越来越脑残了……
var
n,i,j,k,max,sum,ans:longint;
c:char;
s:array[1..20]of string;
b:array[1..20,1..20]of longint;
a:array[1..20]of longint;
procedure search(i:longint);
var i1,x:longint;
begin
for i1:=1 to n do
if (a[i1]>0)and(b>0) then
begin
dec(a[i1]);x:=sum;
sum:=sum+length(s[i1])-b;
search(i1);
inc(a[i1]);
if sum>ans then ans:=sum;
sum:=x;
end;
end;
begin
readln(n);
for i:=1 to n do
begin
readln(s[i]);
for j:=1 to i do
begin
max:=length(s[j]);if max>length(s[i])then max:=length(s[i]); dec(max);
for k:=max downto 1 do
begin
if (pos(copy(s[i],length(s[i])-k+1,k),s[j])=1)then b:=k;
if (pos(copy(s[j],length(s[j])-k+1,k),s[i])=1)then b[j,i]:=k;
end;
end;
end;
readln(c); ans:=0;
for i:=1 to n do if s=c then
begin
filldword(a,sizeof(a)shr 2,2); sum:=length(s[i]);if sum>ans then ans:=sum;
dec(a[i]);search(i);
end;
writeln(ans);
end.注意这个数据:
8
NO
NEW
NAME
NEVER
NATIONAL
NECESSARY
EVER
ME
N如果符合条件的单个单词长度长于组合长度时,输出单个单词的长度(NECESSARY)
-
02009-10-15 20:31:57@
测试数据既然那样可以自接自
那前面为什么不加个aa再加龙呢?
不解的问问? -
02009-10-08 20:48:13@
var i,n,max:longint;
s:array[0..20]of string;
tj:Array[0..20]of longint;
procedure try(str:string);
var o1,len,ll,xx,o2:longint;
temp,str1,str2:string;
begin
len:=length(str);
if len>max then max:=len;
for o1:=1 to n do
begin
xx:=length(s[o1]);
if tj[o1] -
02009-10-02 17:21:12@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0msvar n,i,max:longint; st:array[0..21]of string;
used:array[0..21]of longint; ch:char;
procedure zhao(leng:longint; st2:string);
var i,j,min:longint;
begin
if leng>max then max:=leng;
for i:=1 to n do
if used[i] -
02009-10-01 00:19:00@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms#include
#include
using namespace std;int **f;
char fir;
int c=0,ma=0;
string *d;int MaxLink(string a,string b){
int i=1;
string c1,c2;
do{
c1=a.substr(a.size()-i,i);
c2=b.substr(0,i);
if(!c2.compare(c1) && c1.compare(a) && c1.compare(b)) return c2.size();
i++;
}while(i>fir;
}void DiGui(int lastp,int score,int *used){
int *u=new int[c]; bool f1=false;
for(int i=0;i -
02009-09-28 10:44:25@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms#include
#include
using namespace std;
int N,len[22],ans;
string src[22];
struct node{
string s;
int a[22];
};
node list[80010];
string Ts(string s1,string s2,int p)
{
string tem="";
for (int i=0;isrc[i];
len[i]=src[i].size();
}
cin>>list[1].s;
int head,tail;head=tail=1;
memset(list[1].a,0,sizeof(list[1].a));
ans=1;
while (head -
02009-09-23 15:56:41@
编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|--
秒杀 哈。
---|---|---|---|---|---|---|---|---|---|---|---|--
var i,n,max:longint;
s:array[0..20]of string;
tj:Array[0..20]of longint;
procedure try(str:string);
var o1,len,ll,xx,o2:longint;
temp,str1,str2:string;
begin
len:=length(str);
if len>max then max:=len;
for o1:=1 to n do
begin
xx:=length(s[o1]);
if tj[o1] -
02009-09-20 16:49:08@
可惜了题目没看清。。必须以规定字母开头。。
wa了两次。。。编译通过...
├ 测试数据 01:答案正确... 0ms
├ 测试数据 02:答案正确... 0ms
├ 测试数据 03:答案正确... 0ms
├ 测试数据 04:答案正确... 0ms
├ 测试数据 05:答案正确... 0ms
├ 测试数据 06:答案正确... 0ms
---|---|---|---|---|---|---|---|-
Accepted 有效得分:100 有效耗时:0ms -
02009-09-19 09:17:27@
郁闷死了...#3
那个关于包含的一句......
不知道是我语文不好还是描述不清... -
02009-09-12 15:20:43@
program P1311;
var c,b:array[1..20]of byte;
a:array[1..20]of string;
g,be:string;
max,x,y:integer;
i,n:byte;procedure search(be:string;x:integer);
var j,k:integer;
m,s:string;
begin
for k:=1 to n do
if b[k] -
02009-08-25 06:52:11@
题目意思好难啊~~~
var
h:char;
s:array[0..100] of string;
add:array[0..20,0..20] of integer;
u:array[0..1000] of integer;
i,n,best:longint;
procedure baby;
var i,j,min,k:longint;
ok:boolean;
begin
for i:=1 to n do
for j:=1 to n do
begin
ok:=false;
if length(s[i])>length(s[j]) then min:=length(s[j])
else min:=length(s[i]);
for k:=1 to min-1 do
if copy(s[j],1,k)=copy(s[i],length(s[i])-k+1,k)
then begin
ok:=true;
break;
end;
if ok then add:=length(s[j])-k
else add:=0;
end;
end;
procedure try(l,len:longint);
var i:integer;
begin
if len>best then best:=len;
for i:=1 to n do
if(add[l,i]>0)and(u[i] -
02009-08-24 20:50:22@
“相邻的两部分不能存在包含关系,例如at 和 atide 间不能相连。”
这个什么意思啊?考虑了反而错了,没考虑反而AC -.-
-
02009-08-21 15:24:13@
搜索。本题数据较小,回溯就可以了。
为了方便和直观,本人采用递归实现回溯搜索,下面是程序:var
s:array[1..20] of string;
map:array[1..20,1..20] of longint;
best,n,i:longint;
used:array[1..20] of longint;
ch:char;
function min(x,y:longint):longint;
begin
if xbest then best:=len;
for i:=1 to n do
if (map[now,i]-1) and (used[i] -
02009-08-19 10:26:19@
Orz Orz 哈哈 我的更像
-
02009-08-19 10:09:37@
orz orz