題意:有一堆二進位制數(01串,按字典序排序),從0到2m-1 ,我們刪除其中n(n<=100)個數,再輸出這些數的中位數。
思路:二進位制的字典序排序其實和轉化成十進位制之後的順序是一樣的。我們先把刪除了的數轉化十進位制,然後sort一下,因為最多刪除100個數,我們把這一百個數當做分界,每次加乙個分界,如果現在的總數大於我們找的中位數了,那中位數就在這個區間裡。
**:
#include
#define endl '\n'
#define null null
#define ls p<<1
#define rs p<<1|1
#define fi first
#define se second
#define mp make_pair
#define pb push_back
#define ll long long
#define int long long
#define pii pair
#define ull unsigned long long
#define all(x) x.begin(),x.end()
#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
#define ct cerr<<"time elapsed:"<<1.0*clock()/clocks_per_sec<<"s.\n";
char
*fs,
*ft,buf[
1<<20]
;#define gc() (fs==ft&&(ft=(fs=buf)+fread(buf,1,1<<20,stdin),fs==ft))?0:*fs++;
inline
intread()
while
(ch>=
'0'&&ch<=
'9')
return x*f;
}using
namespace std;
const
int n=
1e5+5;
const
int inf=
0x7fffffff
;const
int mod=
998244353
;const
double eps=
1e-6
;const
double pi=
acos(-
1);string s[
105]
;int num[
105]
;ll qpow
(ll a,ll b)
return res;
}signed
main()
} num[0]
=-1;
sort
(num+
1,num+n+1)
;int pos=
(qpow(2
,m)-n-1)
/2; pos++
;int tot=
0,res=-1
;for
(int i=
1;i<=n;i++)}
if(res==-1
) stack<
int>q;
while
(res)
while
(q.size()
while
(!q.
empty()
) cout<}}
理性思維與感性思維
我對藝術的定義簡單地說就是 藝術是用來表達我們的感性存在的媒介。而對思想,我的定義是 思想是人思考的過程和結果的總稱。過程包括對外在世界 包括人自身 的觀察,綜合,邏輯推理等等,結果就是觀點,觀念等等。總的來說,藝術和思想是人類精神活動的兩大類,乙個涵蓋 感性思維 乙個代表 理性思維 乙個傳達感情,...
數學思維和程式設計思維
1 程式設計沒有數學基礎不行 2 但懂數學不等於懂程式設計 舉乙個例子 求1 2 3 4 99 100的和。數學解法通常是 1 1 100 100 2 5500 2 小學生的解法 1 2 3 3 3 6 這樣累算下去。程式設計解法呢?跟數學解法2相同,如下 static void main stri...
程式設計的誤區,思維啊思維
自從會了ajax js還有ext這些東西後,做web開發總會不自覺的全部使用這些東西,做查詢 介面布局等等,重點倒不是寫 了,一堆堆的js佔了大量的工作。剛開始沒發現什麼,現在覺著這個問題很嚴重啊。發現這個問題還是得從剛剛完成的通用查詢,寫了幾百kb的純js 來控制頁面,頁面布局劃分 條件組合等控制...