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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

[SDOI2010]外星千足虫 题解 高斯消元+bitset简介

發布時間:2025/3/15 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [SDOI2010]外星千足虫 题解 高斯消元+bitset简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

高斯消元 + bitset 簡介:

高斯消元其實就是以加減消元為核心求唯一解。這道題還是比較裸的,可以快速判斷出來。我們將每一只蟲子看作一個未知數,這樣根據它給出的 m 組方程我們可以高斯消元得出每一只蟲子的歸屬地。如果你還不清楚高斯消元的原理可以移步此處

如果你只是以為這是一道板子題自信提交,那么恭喜你,你將會獲得TLE的好成績。為什么呢?我們知道高斯消元是 \(n^3\) 復雜度的,而本題數據范圍 $ n \leq 1000\(,\) m \leq 2000$,明顯會卡出TLE。

于是乎,bitset登場了,先介紹一下:

bitset是一種專門用來儲存二進制的數組,使用前要先調用函數庫。

他的每一個元素只占 1 bit空間,你可以將它當作bool類型的高精度。

他的優點很多,你可將他整體使用,也可單個訪問,例如:

bitset<4> a (string("1001")); bitset<4> b (string("0011")); //注:bitset后面那對尖括號里的數表示a數組的大小 a+=b; //此時a數組為1100 a[3]=1; a[1]=0; //此時a數組為1001

你不訪問它單個的值是,bitset的運算就像一個普通的整數一樣,可以進行與(&)、或(|)、異或(^)、左移(<<)、右移(>>)等操作。同時你還可以對這個數里的任意一位賦值修改。

這樣我們就可以將高斯消元降為二維,將每一個方程用一個bitset維護,在用異或運算進行消元即可。

代碼如下:

#include<iostream> #include<cstdio> #include<iomanip> #include<algorithm> #include<bitset>//調用bitset函數庫#define ll long long #define db double #define inf 0x7fffffffusing namespace std;bitset<1005> s[2001]; int n,m,ans,now=1;inline int qr(){//快讀char ch;while((ch=getchar())<'0'||ch>'9');int res=ch^48;while((ch=getchar())>='0'&&ch<='9')res=(res<<1)+(res<<3)+(ch^48);return res; }inline int rd(){char ch;while((ch=getchar())<'0'||ch>'9');return ch^48;//每次只讀一個 }int main(){//freopen(".in","r",stdin);//freopen(".out","w",stdout);n=qr()+1,m=qr();for(int i=1;i<=m;++i)//讀入for(int j=1;j<=n;++j)s[i][j]=rd();for(int i=1;i<n;now=++i){while(!s[now][i]&&now<=m)++now;ans=max(ans,now);//更新 k 值if(now==m+1){printf("Cannot Determine\n");return 0;} //方程不構成唯一解if(now!=i)swap(s[i],s[now]);for(int j=1;j<=m;j++){if(i==j)continue; //不消自己if(!s[j][i])continue;//不是1就不用消s[j]^=s[i];//用異或消去系數 1}//消去其他方程的系數}printf("%d\n",ans);for(int i=1;i<n;++i)if(s[i][n])printf("?y7M#\n");else printf("Earth\n");return 0; }

bitset除了可以整體運算外還有很多功能:

foo.size() 返回大小(位數) foo.count() 返回1的個數 foo.any() 返回是否有1 foo.none() 返回是否沒有1 foo.set() 全都變成1 foo.set(p) 將第p + 1位變成1 foo.set(p, x) 將第p + 1位變成x foo.reset() 全都變成0 foo.reset(p) 將第p + 1位變成0 foo.flip() 全都取反 foo.flip(p) 將第p + 1位取反 foo.to_ulong() 返回它轉換為unsigned long的結果,如果超出范圍則報錯 foo.to_ullong() 返回它轉換為unsigned long long的結果,如果超出范圍則報錯 foo.to_string() 返回它轉換為string的結果

轉載于:https://www.cnblogs.com/812-xiao-wen/p/9872897.html

總結

以上是生活随笔為你收集整理的[SDOI2010]外星千足虫 题解 高斯消元+bitset简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩少妇毛片 | 欧美乱码精品一区二区 | 奇米影视第四色首页 | 午夜免费在线观看 | 黄色大片免费观看视频 | 日韩无码精品一区二区 | 青青操青青 | 日韩小视频在线观看 | 丰满人妻一区二区三区性色 | 天天插视频| 黑丝啪啪| 东北少妇高潮抽搐 | www.youjizz.com国产 | wwwxxx色 | 国产精品毛片一区二区在线看舒淇 | 妓院一钑片免看黄大片 | 蜜臀av性久久久久蜜臀aⅴ四虎 | 亚洲一区在线观 | 亚洲精品二区 | 黑人高潮一区二区三区在线看 | 无码一区二区三区免费 | 色呦呦网站 | 久久超碰在线 | 免费在线观看一区二区三区 | 一级全黄少妇性色生活片 | 国产精品麻豆一区二区 | 超碰在线看 | 亚洲综合激情五月久久 | 一区二区视频国产 | 成人www.| 国产丝袜一区二区三区 | av在线免费播放网站 | 久久99国产精品久久99果冻传媒 | 奇米影视在线 | 国产女无套免费视频 | av一级二级| 国产精品亚洲AV色欲三区不卡 | 久久亚洲私人国产精品va | 欧美在线aa | 青青精品视频 | xxxx视频在线观看 | 国产一二三四在线 | 久久这里只有精品国产 | 精品久久在线观看 | 黄色片网站免费看 | 性视频久久 | 在线观看你懂的视频 | 岛国片免费在线观看 | 国产露脸无套对白在线播放 | 男人天堂五月天 | 国产福利在线 | 五号特工组之偷天换月 | 黄色片子免费 | 成人黄色免费网 | 日韩青青草 | 97在线观视频免费观看 | www.污在线观看 | 日本三级中文字幕在线观看 | 福利视频亚洲 | 成人免费观看cn | 亚洲视频在线看 | 天天色一色 | 欧美亚洲影院 | 爱久久| 欧美日韩成人一区二区在线观看 | 国产精品高潮呻吟久久av野狼 | 男女啪啪十八 | 精品一区视频 | www欧美精品 | 国产色诱视频 | 久久久久久亚洲精品 | 国产人成视频在线观看 | 中文字幕一区二区人妻视频 | 国产在线播放一区二区 | 成人自拍偷拍 | 欧美日韩综合一区二区三区 | 最近国语视频在线观看免费播放 | 亚洲少妇自拍 | 国产精品久久久久久一区二区 | 免费香蕉视频 | 久久久久久久久久久久久女过产乱 | 国产99在线观看 | 午夜久久久久久久久 | 福利精品 | 97人人爽人人爽人人爽人人爽 | 天天草视频| 日日爱99| 物业福利视频 | 日韩精品中文字幕一区二区三区 | www.精品久久| 日本黄色美女 | 91嫩草网 | 亚洲成人a√| 超碰免费公开在线 | 调教驯服丰满美艳麻麻在线视频 | 成年人理论片 | 18禁网站免费无遮挡无码中文 | 久久网站av | 97av超碰 |