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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

CH - 0104 起床困难综合症(位运算+贪心)

發(fā)布時(shí)間:2024/4/11 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CH - 0104 起床困难综合症(位运算+贪心) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

題目鏈接:點(diǎn)擊查看

題目大意:我們需要構(gòu)造一個(gè)初始值start,范圍在[0,m],要求使用這個(gè)初始值進(jìn)行k次操作后得到的答案最大,每次操作分為三個(gè)類型:

  • AND x:讓當(dāng)前答案與x進(jìn)行按位與
  • OR x:讓當(dāng)前答案與x進(jìn)行按位或
  • XOR x:讓當(dāng)前答案與x進(jìn)行按位異或
  • 現(xiàn)在我們需要構(gòu)造出這個(gè)start,使得經(jīng)過k次操作后得到的end最大,輸出end

    題目分析:首先我們肯定不能直接枚舉m,然后維護(hù)最大值,因?yàn)閙給到了1e9,單單只是枚舉一個(gè)m都會(huì)超時(shí),就別再提每個(gè)m還需要n次操作,暴力的時(shí)間復(fù)雜度是n*m,都到了1e14,完全不用考慮了

    我們需要知道關(guān)于位運(yùn)算的一個(gè)主要特點(diǎn):在二進(jìn)制表示下不進(jìn)位

    換句話說,每一個(gè)數(shù)字的二進(jìn)制都是相互獨(dú)立的,所以我們可以按位討論,這樣就能在logn的時(shí)間復(fù)雜度內(nèi)枚舉完m符合情況的狀態(tài)了,時(shí)間復(fù)雜度下降為n*logm,最多3e6

    現(xiàn)在我們需要討論一下該怎么按位計(jì)算,如果這個(gè)題目沒有m的約束,那么我們按位從小到大枚舉和從大到小枚舉都是可以的,但是加了這個(gè)約束之后,我們就只能按位從大到小枚舉才能獲得最優(yōu)解了,因?yàn)槿绻覀儚男〉酱竺杜e的話,枚舉了其中一個(gè)比較小的位置,雖然對(duì)答案有貢獻(xiàn),但卻占據(jù)了小于等于m的這個(gè)空間,若后續(xù)還有更大的位置可以做出貢獻(xiàn),卻被m這個(gè)約束卡出去的話,那么此時(shí)答案必定不是最優(yōu)的

    再就是討論一下某個(gè)位置該放0或1的情況,因?yàn)槲覀円澬淖宔nd盡可能的大,所以對(duì)于某一位置,我們計(jì)算一下res1和res0,res1和res0分別是在當(dāng)前位置放1和放0情況下返回的答案,我們肯定會(huì)讓end加上兩者中較大的一個(gè),如果兩者相等的話優(yōu)先放0,不過別忘了還有m這個(gè)約束,因?yàn)樵诜?放1對(duì)答案的貢獻(xiàn)相同的情況下,放1會(huì)占據(jù)m的空間,所以放0才是最優(yōu)解,總結(jié)下來在某一位放1還是放0可以分為兩種情況:start+res1<=m&&res1>res0滿足時(shí)放1,否則放0

    代碼:

    #include<iostream> #include<cstdlib> #include<string> #include<cstring> #include<cstdio> #include<algorithm> #include<climits> #include<cmath> #include<cctype> #include<stack> #include<queue> #include<list> #include<vector> #include<set> #include<map> #include<sstream> #include<unordered_map> using namespace std;typedef long long LL;const int inf=0x3f3f3f3f;const int N=1e5+100;int n,m;struct Node {char op[5];int val; }op[N];int cal(int bit,int x)//計(jì)算當(dāng)前bit位,初始值為x的情況下得到的答案 {for(int i=1;i<=n;i++){int temp=op[i].val>>bit&1;if(op[i].op[0]=='A')x&=temp;else if(op[i].op[0]=='O')x|=temp;elsex^=temp;}return x<<bit; }int main() { // freopen("input.txt","r",stdin); // ios::sync_with_stdio(false);scanf("%d%d",&n,&m);for(int i=1;i<=n;i++)scanf("%s%d",op[i].op,&op[i].val);int start=0,end=0;//start:初始攻擊力 end:最終攻擊力 for(int i=30;i>=0;i--)//枚舉每一位,注意要從最高位開始枚舉才能達(dá)到最優(yōu)解 {int res1=cal(i,1);//當(dāng)前第i位為1的情況下運(yùn)算后得到的結(jié)果 int res0=cal(i,0);//當(dāng)前第i位為0的情況下運(yùn)算后得到的結(jié)果 if(start+res1<=m&&res1>res0)//滿足條件,第i位用res1填充{start+=res1;//實(shí)時(shí)更新start end+=res1;}else//否則用res0填充 end+=res0;}printf("%d\n",end);return 0; }

    ?

    總結(jié)

    以上是生活随笔為你收集整理的CH - 0104 起床困难综合症(位运算+贪心)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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

    主站蜘蛛池模板: 热九九精品 | 中文字幕乱伦视频 | 国产女人视频 | 成人在线免费视频观看 | 看片在线观看 | 蜜臀国产AV天堂久久无码蜜臀 | 蜜桃视频在线观看一区二区 | 最新国产毛片 | 日韩中文字幕有码 | 欧美精品乱码99久久蜜桃 | 挪威xxxx性hd极品 | 久久久综合色 | 久久成人av| 九色porny丨精品自拍视频 | 午夜精品久久久内射近拍高清 | 国产精品综合一区二区 | 中文字幕一区二区三区日韩精品 | 国产精品久久久久久久久免费桃花 | 嫩草国产 | 免费观看已满十八岁 | 午夜激情福利视频 | 97神马影院| 国产91精选 | 欧美日韩免费高清一区色橹橹 | 亚洲制服一区 | 国产最新av | av在线麻豆| 国产拍拍拍拍拍拍拍拍拍拍拍拍拍 | 欧美成人精品一区二区免费看片 | 国产免费又黄又爽又色毛 | 国产经典三级 | 日韩一区二区三区免费视频 | 91视频在线观看免费 | 国产午夜精品理论片在线 | 国产无遮挡呻吟娇喘视频 | 亚洲欧洲精品一区二区三区 | 又色又爽又黄gif动态图 | 美味的客房沙龙服务 | 动漫av网站| 国产成人在线免费观看 | 久久r视频 | 成人国产精品久久久 | 色av吧| 日本三级韩国三级三级a级中文 | 国产精品一区久久 | 欧美乱日 | 男女操网站| 91成年版| 国产亚洲视频在线观看 | 亚洲最新网址 | 欧美精品亚洲精品日韩精品 | 天天色综合图片 | 久久99久久99 | 国产剧情一区在线 | 欧美亚洲一区二区三区四区 | 免费观看成人在线视频 | 99国产精品自拍 | 国产精品人八做人人女人a级刘 | 日本黄色特级片 | 岛国av毛片| 蜜桃视频久久 | 制服.丝袜.亚洲.中文.综合 | 姐姐你真棒插曲快来救救我电影 | 欧美男人亚洲天堂 | 天美乌鸦星空mv | 国产一区二区视频在线免费观看 | 国产精品调教视频 | 大尺度叫床戏做爰视频 | h片在线看 | 丁香九月婷婷 | 中国特级黄色大片 | 亚洲天堂伊人网 | 成人网视频 | 国产美女极度色诱视频www | 精品久久久无码中文字幕边打电话 | 中文字幕人妻一区二区三区 | 国产99re| 欧洲美一区二区三区亚洲 | 国产系列在线 | 无遮挡裸光屁屁打屁股男男 | a资源在线观看 | 黄色一级国产 | 人体内射精一区二区三区 | 女人扒开腿让男人桶爽 | 日韩不卡av在线 | 久久99精品久久久久 | 国产精品黄色av | 日本在线免费 | 日韩一区视频在线 | 国产精品久久福利 | 男人疯狂高潮呻吟视频 | 视频一区二区三区在线观看 | 中文字幕一区二区久久人妻 | 毛片在线网 | 国产原创视频 | 91肉色超薄丝袜脚交一区二区 | 亚洲激情免费 | 中文字幕永久在线观看 | 精品国产乱码久久 |