原创 acwing合併石子[區間dp]

石子合併只能合併相鄰兩堆。求體力最小值數據比較弱,最多300堆,每堆重量不超過1000。狀態表示f[i][j]表示合併區間[i,j]需要的最小體力狀態轉移把區間[i,j]分成[i,k] 和[k+1,j]兩部分,由於這兩部分是獨立的,什麼意思

原创 c++輸出數據的二進制表示形式

今天做位運算的題目,想要通過查看二進制的表示形式來debug和分析特此記錄一下 c++ STL中模板類bitset的簡單實用#Include<bitset>將整形int轉化爲二進制bitset<指定二進制位數>()bitset<32>(x)

原创 牛客網訓練3總結

A打怪題意:我和怪物都有血量,都有攻擊值。我和怪物輪流攻擊,當然我先開始,問在我血量爲0之前最多能殺幾個怪。分析統計怪物死需要打幾次cnt,我死需要打幾次cnt1。如果怪物一次就死,則我可以殺無數個怪。否則我的血量需要減去(cnt-1)*怪

原创 多重揹包1dp

多重揹包1有 N 種物品和一個容量是 V的揹包。第 i種物品最多有 si 件,每件體積是 vi,價值是 wi。求解將哪些物品裝入揹包,可使物品體積總和不超過揹包容量,且價值總和最大。輸出最大價值。輸入格式第一行兩個整數,N,V,用空格隔開,

原创 牛客網7-教417題解

題目大意各個位只含4和7的數(比如74777,47,4444),要求各位之和等於n。求其中最小的那個。如果不存在,則輸出“YingYingYing”。題目思考貪心:7的個數越多越好,因爲這樣位數少,即越優。此題肯定不能用int,long l

原创 matlab2ask和2psk仿真實驗代碼

使用時將F2T.m和T2F.m文件放在和主函數相同的文件目錄下即可。F2T.m文件function[t,st]=F2T(f,sf)df=f(2)-f(1);Fmx=(f(end)-f(1)+df);dt=1/Fmx;N=length(sf)

原创 找朋友並查集裸題

找朋友並查集用來合併兩個不相交的集合主要找根,需要路徑優化合併的時候按秩合併ac代碼#include<bits/stdc++.h>usingnamespacestd;constintmaxn=5e4;intparent[maxn],rank

原创 M元上升子序列【樹狀數組+dp】

多元組-牛客網題解ac代碼#include<iostream>#include<cstring>#include<algorithm>#include<cstdio>usingnamespacestd;constintmaxn=1e5+10

原创 最長公共上升子序列[DP]

兩個字符串a和b,需要統計出其中公共子序列的最長是多少。注意:所謂子序列,指的是出現的先後順序一樣,但可以不連續出現。比如對於s=abdef,其中adf是s 的一個子序列,因爲對於adf中每個字符,其出現的先後順序與s中先後順序一致。這是一

原创 洛谷P1908求逆序對【樹狀數組】

逆序對的定義:對於給定的一段正整數序列,逆序對就是序列中ai>aj,i<ja_i>a_j,i<jai​>aj​,i<j,讓統計逆序對的個數。本題的數據加強,允許存在重複的數字。這並不影響下面分析的正確性。思路對於a[ i ] ,我們要求的是

原创 hdu1166敵兵佈陣 樹狀數組裸題

樹狀數組裸題動態更新區間內的點,動態查詢區間和敵兵佈陣ac代碼#include<iostream>#include<algorithm>#include<cstdio>#include<string>#include<cstring>usi

原创 codeforce A - Sequence with Digits

鏈接已知遞推公式,告訴a1,和k,求ak每個數字各位中最大的數字,和最小的數字相乘。比如513,minDigit(513)=1,maxDigit(513)=5數據量暴力long long最大9×10189\times10^{18}9×101

原创 c++98不支持set初始化列表

想要set裏面填入沒有m和q的a~z的小寫英文字母set<char>ex;for(chari='a';i<='z';i++){if(i!='m'&&i!='q')ex.insert(i);}for(it=ex.begin();it!=ex.

原创 合併果子優先隊列

合併果子每次取出兩個最小的,求和之後再放進去,再取出兩個最小的,依次進行下去。當然,每次取出之後都需要累加兩個數。本文使用優先隊列,也就是最小堆實現typedeflonglongll;priority_queue<ll,vector<ll>

原创 數組離散化

補充知識點數據離散化,爲什麼數組離散化?因爲如果用數據權值爲下標,存不下。這個時候需要把待離散化的數組中的每一個數映射到一個小一點的數組中去。離散化關心數據的相對大小,不關心一個數具體多大。使用c++標準模板庫函數進行離散化代碼排序+二分查