首頁 > 資料庫 > mysql教程 > [U]3.1.5 Contact 小技巧题

[U]3.1.5 Contact 小技巧题

WBOY
發布: 2016-06-07 15:42:24
原創
1414 人瀏覽過

刚开始做这题的时候思路错了, 把他想成字符串模式匹配题了。通过构建长度在[A,B]之间的字符串,然后再对主字符串进行模式匹配,想想要用kmp算法,对于这个我还不是很懂.... 打算好好学习一下kmp,后来估计了一下时间,发现必须超时。 转而一想: 其实需要的

刚开始做这题的时候思路错了, 把他想成字符串模式匹配题了。通过构建长度在[A,B]之间的字符串,然后再对主字符串进行模式匹配,想想要用kmp算法,对于这个我还不是很懂.... 打算好好学习一下kmp,后来估计了一下时间,发现必须超时。

转而一想:

其实需要的只是在主字符串中的一些子集,通过直接遍历主字符串长度为len(A

怎么解决呢?

可以通过添加前导'1',区别开来。再在输出的时候忽略前导'1'。

另外用到了排序,将出现频率分别开来。

输出的code写得不是很好;

/*
ID:sevenst4
LANG:C++
PROG:contact
*/
#include<stdio.h>
#include<algorithm>
using namespace std;

int cnt[10000];
int cp[10000];
char line[222222];

bool cmp( int a,int b ){ return a>b; };

void print( int num )
{
 	 int l=0;
 	 int k[15]={0};
 	 while( num )
 	 {
	  		k[l++]=num&1;
			num=num>>1;	
 	 }
 	 for( int i=l-2;i>=0;i-- )
 	 	  printf( "%d",k[i] );
}
int getnum( int s,int e )
{
 	int ret=0;
 	for( int i=s;i<e if line ret="ret<<1|1;" else return int main freopen a for i="0;i<(1<<13);i++" cnt scanf char data len="0;" while j="0;j+i<=len;j++" cp sort index="0;" n-- top="cp[index];" break outnum="0;" printf bool flag="false;" print><br>
<br>



</e></algorithm></stdio.h>
登入後複製
相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板