日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

usaco contact

發(fā)布時(shí)間:2023/11/27 生活经验 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 usaco contact 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
★Contact 聯(lián)系
奶牛們開始對(duì)用電波望遠(yuǎn)鏡掃描牧場(chǎng)外的宇宙感興趣.最近,他們注意到了一種非常奇怪的脈沖調(diào)
制微波被從星系的中央發(fā)射出來.他們希望知道電波是否是被某些地外生命發(fā)射出來的,還是僅僅
是普通的的星星的心跳.
幫助奶牛們用一個(gè)能夠分析他們?cè)谖募杏浵碌挠涗浀墓ぞ邅碚业秸嫦?他們?cè)趯ふ议L(zhǎng)度在 A 到 B
之間(含)在每天的數(shù)據(jù)文件中重復(fù)得最多的比特序列 (1 <= A <= B <= 12).他們?cè)谡夷切┲貜?fù)
得最多的比特序列.一個(gè)輸入限制告訴你應(yīng)輸出多少頻率最多的序列.
符合的序列可能會(huì)重疊,并且至少重復(fù)一次的序列會(huì)被計(jì)數(shù).
PROGRAM NAME: contact
INPUT FORMAT
第一行:三個(gè)用空格分隔的整數(shù): A, B, N; (1 <= N < 50)
第二行及以后:一個(gè)最多200,000字符的序列,全是0或1; 每行有80個(gè)字符,除了可能的最后一行.
SAMPLE INPUT (file contact.in)
2 4 10
01010010010001000111101100001010011001111000010010011110010000000
在樣例里,序列 100 出現(xiàn)了 12 次,而序列 1000 出現(xiàn)了 5 次.次數(shù)最多的序列是 00,出現(xiàn)了 23 次.
OUTPUT FORMAT
輸出 N 個(gè)頻率最高的序列(按照頻率由高到低的次序).由短到長(zhǎng)排列頻率相同的這些序列,如果長(zhǎng)

短相同,按二進(jìn)制大小排列.如果出現(xiàn)的序列個(gè)數(shù)小于 N,輸出存在的序列


看一個(gè)大神的想法真的厲害比什么官方題解前面加一更容易理解。

/*
ID: jinbo wu
TASK: contact
LANG: C++
*/
#include<bits/stdc++.h>
using namespace std;
string str,temp;
int sta[15][5000];
int d[13];
bool v[200005];
int main()
{freopen("contact.in","r",stdin);freopen("contact.out","w",stdout);d[0]=1;for(int i=1;i<=12;i++)d[i]=2*d[i-1];int a,b,n;cin>>a>>b>>n;while(cin>>temp){str+=temp;if(temp.length()<80)break;}for(int i=0;i<str.length();i++){int sum=0;for(int j=0;j<12&&str[i+j]!='\0';j++){sum=sum*2+str[i+j]-'0';sta[j+1][sum]++;}}int maxn=0;for(int i=1;i<=12;i++)for(int j=0;j<=d[i];j++){if(maxn<sta[i][j])maxn=sta[i][j];}int count2=0;if(a>str.length())  a=str.length();if(b>str.length())  b=str.length();for(int i=maxn;i>0;i--){int flag=0;int count=0;for(int j=a;j<=b;j++)for(int k=0;k<=d[j];k++){if(sta[j][k]==i){if(count%6!=0)cout<<" ";if(count%6==0&&count)cout<<endl;if(!v[i]){printf("%d\n",i);v[i]=1;}for(int c=1;c<=j;c++){if(d[j-c]&k)//看k的第c位(順著數(shù))是1還是0.cout<<'1';else cout<<'0';}count++;flag=1;}}if(flag==1){count2++;cout<<endl;}if(count2==n)break;	}
}


總結(jié)

以上是生活随笔為你收集整理的usaco contact的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。