程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> BZOJ 2460 BeiJing2011 元素 貪心+高斯消元

BZOJ 2460 BeiJing2011 元素 貪心+高斯消元

編輯:C++入門知識

BZOJ 2460 BeiJing2011 元素 貪心+高斯消元


題目大意:給定一些元素,每個元素有兩個值a和b,現在需要選出一些元素,在不存在a值異或和為0的子集的情況下使b之和最大

可以用擬陣證明貪心的正確性(我不會證,同學會)

於是我們將b值排序,從大到小插入

動態維護線性基即可

#include 
#include 
#include 
#include 
#define M 1010
using namespace std;
struct abcd{
	long long a;
	int b;
	friend istream& operator >> (istream& _,abcd &x)
	{
		_>>x.a>>x.b;
		return _;
	}
	bool operator < (const abcd &x) const
	{
		return b > x.b ;
	}
}a[M];
int n;
long long ans,linear_bases[70];
int main()
{
	int i,j;
	cin>>n;
	for(i=1;i<=n;i++)
		cin>>a[i];
	sort(a+1,a+n+1);
	for(i=1;i<=n;i++)
	{
		for(j=62;~j;j--)
			if(a[i].a&(1ll<

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved