貪心從大到小加入,正確性不是很會證,需要用到擬陣來證明 總之做法就是從大到小貪心加入,如果不與已選的元素沖突,那麼就貪心選他
#include #include #include #include #include #include #include #include #include #include #include #define ll long long #define N 1005 using namespace std; ll sc() { ll i=0; char c=getchar(); while( c>'9' || c<'0' ) c=getchar(); while( c>='0' && c<='9' )i=i*10+c-'0',c=getchar(); return i; } struct W{int x;ll a;}a[N]; ll ins[66],ans; int n; bool cmp(W a,W b) { return a.x>b.x; } int main() { n=sc(); for(int i=1;i<=n;i++) a[i].a=sc(),a[i].x=sc(); sort(a+1,a+n+1,cmp); for(int i=1;i<=n;i++) { for(int k=65;k>=0;k--) { if((a[i].a>>k)&1) { if(!ins[k]) { ins[k]=a[i].a; break; } a[i].a^=ins[k]; } } if(a[i].a)ans+=a[i].x; } cout<
當時還不知道自己用的是個模式,只是覺得非常好。很給力。
[c++]通過一個簡單的程序引出#define與typede
這裡記錄下我實現Lua綁定的全過程。 准
Codeforces Round #302 (Div. 2)
leetcode筆記:Integer to English
[OOD-More C++ Idioms] 內部類 (Inn