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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【NOIP2015模拟】终章-剑之魂

發(fā)布時(shí)間:2024/1/8 编程问答 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【NOIP2015模拟】终章-剑之魂 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

背景介紹

古堡,暗鴉,斜陽(yáng),和深淵……
等了三年,我獨(dú)自一人,終于來(lái)到了這里……
“終焉的試煉嗎?就在這里嗎?”我自言自語(yǔ)道。
“終焉的試煉啊!就在這里啊!”我再一次自言自語(yǔ)道。
“這背后可能有那個(gè)東西嗎?”我自言自語(yǔ)道。
“這背后一定有那個(gè)東西呢!”我又一次自言自語(yǔ)道。
我沉默著,踏上黑漆漆的索橋,小心翼翼地,拿出鋒利的注入我靈魂的雙劍……
“那么,我們開(kāi)始吧……”我最后一次自言自語(yǔ)道。

題目描述

My soul of my sowrd!
終焉的試煉即將到來(lái),作為一名有修養(yǎng)的劍士,雖然沒(méi)有習(xí)得n刀流但是二刀流還是沒(méi)問(wèn)題的。然而我也是個(gè)劍的收藏者,家里屯著n把劍,每一把劍都有一個(gè)靈魂值a[i],由于一些劍之間可能有共鳴,所以我需要兩把契合度最高的劍。據(jù)劍圣所說(shuō),兩把編號(hào)為i,j劍的契合度為a[i] and a[j]。如何深得劍的靈魂呢?
注:AND 為按位與運(yùn)算,先將數(shù)轉(zhuǎn)成二進(jìn)制,不滿位數(shù)的補(bǔ)全0,然后成為兩個(gè)長(zhǎng)度相同的二進(jìn)制數(shù),處理的時(shí)候,兩個(gè)相應(yīng)的二進(jìn)制位都為1,該位的結(jié)果值才為1,否則為0。例:0101(5) and 0011(3)=0001(1)

輸入

第一行一個(gè)整數(shù)n,代表藏劍數(shù)。
第二行n個(gè)整數(shù),第i個(gè)整數(shù)表示a[i]。

輸出

輸出包含一個(gè)正整數(shù),最好的兩把劍的契合度。

思路

我們先測(cè)試幾組數(shù)據(jù)。1.6 and 4=4. 2.6 and 2=2. 3.4 and 2=0.不難發(fā)現(xiàn),兩個(gè)數(shù)越大,運(yùn)算出來(lái)結(jié)果越大。由此得出解法。

解法+時(shí)間復(fù)雜度

先從大到小快排(n log n),再n^2枚舉。WTF!這你都過(guò)了?別急,聽(tīng)完嘛。如果我們and出來(lái)的數(shù)沒(méi)上一次大,后面的數(shù)and出來(lái)一定沒(méi)有這次大,我們就可以break了。所以總時(shí)間復(fù)雜度為O(n log n+玄(學(xué)))

#include<cstdio> #include<iostream> #include<cstring> using namespace std; int n,i,u,k,a[1000001],b[1000001][32],xh,h[32][32],j,o[1000001]; long long ans; bool bz,bj[1000001]; int ks(long long x) {if (x==0) return 1;if (x==1) return 2; else{int s=x%2;if (s==1) return ks(x/2)*ks(x/2)*2;else return ks(x/2)*ks(x/2);} } int main() {freopen("sword.in","r",stdin);freopen("sword.out","w",stdout);scanf("%d",&n);for (i=1;i<=n;i++){scanf("%d",&a[i]);while (a[i]!=0){b[i][0]++;b[i][b[i][0]]=a[i]%2;a[i]/=2;}xh=max(xh,b[i][0]);h[b[i][0]][0]++;h[b[i][0]][h[b[i][0]][0]]=i;}bz=0;for (i=xh;i>=1;i--){if (bz==0) {k+=h[i][0];for (j=1;j<=h[i][0];j++){bj[h[i][j]]=1;}}u=0;for (j=1;j<=n;j++)if (b[j][i]==1 && bj[j]==1) u++;else{o[0]++;o[o[0]]=j;}if (u>=2) {ans+=ks(i-1);for (j=1;j<=o[0];j++)bj[o[j]]=0;bz=1;}memset(o,0,sizeof(o));}printf("%lld",ans); }

轉(zhuǎn)載于:https://www.cnblogs.com/Sport-river/p/10390133.html

總結(jié)

以上是生活随笔為你收集整理的【NOIP2015模拟】终章-剑之魂的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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