題意:
給你n個東西,其中任意兩種東西可以合成。思路:問你最多可以合成多少東西。
在最多合成東西的情況下,要使得字典序最小。
先按照貪心的方法構造出字典序列最優的解。然後有可能有乙個剩下了一些的數量的東西(也可能沒有)
那麼就按照字典序從後往前掃,強行將最後的幾對拆開來和剩餘的匹配。
#include
#include
#include
#include
#include
#include
#define maxn 100005
using
namespace
std;
typedef
long
long ll;
map< pair, long
long > ans;
map< pair , long
long, greater< pair > > res;
long
long a[maxn];
int n;
void update(int x, int y, ll z)
int main()
int remain_id = -1;
ll remain_num = 0;
for(int i=1; i<=n; i++)
if(a[i] > 0)
if(remain_id!=-1)
remain_num = a[remain_id]/2;
else
remain_num = 0;
for(auto it: res)
else
}else
}cout
// whn6325689
// mr.phoebe
//
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#pragma comment(linker, "/stack:1024000000,1024000000")
using
namespace
std;
#define eps 1e-9
#define pi acos(-1.0)
#define inf 0x3f3f3f3f
#define llinf 1ll<<62
#define speed std::ios::sync_with_stdio(false);
typedef
long
long ll;
typedef
unsigned
long
long ull;
typedef
long
double ld;
typedef pairpll;
typedef
complex
point;
typedef pair pii;
typedef pairint> piii;
typedef
vector
vi;
#define clr(x,y) memset(x,y,sizeof(x))
#define cpy(x,y) memcpy(x,y,sizeof(x))
#define clr(a,x,size) memset(a,x,sizeof(a[0])*(size))
#define cpy(a,x,size) memcpy(a,x,sizeof(a[0])*(size))
#define debug(a) cout << #a" = " << (a) << endl;
#define debugarry(a, n) for (int i = 0; i < (n); i++)
#define mp(x,y) make_pair(x,y)
#define pb(x) push_back(x)
#define lowbit(x) (x&(-x))
#define mid(x,y) (x+((y-x)>>1))
#define getidx(l,r) (l+r | l!=r)
#define ls getidx(l,mid)
#define rs getidx(mid+1,r)
#define lson l,mid
#define rson mid+1,r
template
inline
bool read(t &n)
template
inline
void write(t n)
int len = 0,data[20];
while(n)
if(!len) data[len++] = 0;
while(len--) putchar(data[len]+48);
}//-----------------------------------
const
int maxn=100010;
map ans,res;
int a[maxn],n;
int main()
int remain_id=-1;
ll remain_num=0;
for(int i=1;i<=n;i++)
if(a[i]>0)
if(remain_id!=-1)
remain_num=a[remain_id]/2;
else
remain_num=0;
for(map
::reverse_iterator it=res.rbegin();it!=res.rend();it++)
else
if(remain_num!=0)
else
}else
ans[mp(i,j)]+=res;
}cout
gym初級 初始gym環境(二)
import gym env gym.make cartpole v0 print env.action space print env.observation space 輸出結果為 discrete 2 box 4,意思是動作空間中的動作是離散 discrete 的2個動作,狀態空間中的狀態是4...
Ubuntu 10 04 3配置Samba服務
記錄一下,以備後用。要求 訪問samba服務,有可讀可寫許可權,實現windowsxp與ubuntu10.04.3虛機擬的檔案交換。機器 ubuntu 10.04.3 32位 步驟 1.安裝軟體 sudo apt get install samba smbfs 2.建立共享目錄,修改許可權 mkdi...
Ubuntu 10 04 3 掛載NTFS行動硬碟
說明 本文全部在root許可權下進行 一 檢視行動硬碟有沒有被連線到系統 fdisk l 檢視所有連線到電腦上的儲存裝置 從上面可以看到,已經有乙個名叫 sdc 的1t ntfs 格式行動硬碟連線到系統。如果不確定這個硬碟是不是我們的行動硬碟,我們通過檢視已經掛載的硬碟做對比 通過執行掛載命令,看看...