【jzoj 4727】【NOIP2015模拟10.28B组】终章-剑之魂 {贪心}
題目
Description
【背景介紹】
古堡,暗鴉,斜陽,和深淵……
等了三年,我獨自一人,終于來到了這里……
“終焉的試煉嗎?就在這里嗎?”我自言自語道。
“終焉的試煉啊!就在這里啊!”我再一次自言自語道。
“這背后可能有那個東西嗎?”我自言自語道。
“這背后一定有那個東西呢!”我又一次自言自語道。
我沉默著,踏上黑漆漆的索橋,小心翼翼地,拿出鋒利的注入我靈魂的雙劍……
“那么,我們開始吧……”我最后一次自言自語道。
【題目描述】
My soul of my sowrd!
終焉的試煉即將到來,作為一名有修養的劍士,雖然沒有習得n刀流但是二刀流還是沒問題的。然而我也是個劍的收藏者,家里屯著n把劍,每一把劍都有一個靈魂值a[i],由于一些劍之間可能有共鳴,所以我需要兩把契合度最高的劍。據劍圣所說,兩把編號為i,j劍的契合度為a[i] and a[j]。如何深得劍的靈魂呢?
注:AND 為按位與運算,先將數轉成二進制,不滿位數的補全0,然后成為兩個長度相同的二進制數,處理的時候,兩個相應的二進制位都為1,該位的結果值才為1,否則為0。例下圖。
Input
第一行一個整數n,代表藏劍數。
第二行n個整數,第i個整數表示a[i]。
Output
輸出包含一個正整數,最好的兩把劍的契合度。
解題思路
a&b a & b ,b無論多大,最大也就可以是 a a 。所以排一次序(從大到小),只要比目前所得到answansw小或等于就可以不用 and a n d 了
代碼(貪心)
#include<cstdio> #include<algorithm> #define fre(x) freopen(#x".in","r",stdin),freopen(#x".out","w",stdout); using namespace std; int n,answ,a[1000005]; bool cmp(int x,int y) { return x>y;} int main() {//fre(sword);scanf("%d",&n); for (int i=1;i<=n;i++)scanf("%d",&a[i]); sort(a+1,a+n+1,cmp); for (int i=1;i<n;i++)if (a[i]>answ){for (int j=i+1;j<=n;j++)if ((a[i]&a[j])>=answ) answ=(a[i]&a[j]); }printf("%d",answ); }總結
以上是生活随笔為你收集整理的【jzoj 4727】【NOIP2015模拟10.28B组】终章-剑之魂 {贪心}的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 自定义下拉刷新之仿AcFun下拉刷新
- 下一篇: 微信预览wx.previewImage黑