目錄
b 、crazy binary string (思維)
d 、big integer ( 數論 )
f 、planting trees(思維+單調佇列)
h、 magic line (計算幾何)
j、 lru management (模擬)
題意:計算最長的01子串和子串行,其中01數量相同。
分析:對於子串那麼直接將0製成-1,1還是1計算字首和,然後相減為零的最大長度即為答案
對於子串行也就是計算最小的0 或 1 的數量。
#include using namespace std;
const int maxn=1e5+10;
char s[maxn];
int pre[maxn];
mapmp;
int main()else
}printf("%d %d\n",ans1,min(ans2<<1,(n-ans2)<<1));
return 0;
}
題意:
定義分析:
}題意:
給出乙個矩陣,計算最大的矩形使得所有元素的差值在m之內。
分析:同時注意每次不滿足條件的時候進行更新。還有注意細節
#include#define mm(a,b) memset(a,b,sizeof(a))
#define accelerate (ios::sync_with_stdio(false),cin.tie(0))
typedef long long ll;
typedef long double ld;
typedef unsigned long long ull;
#define pi acos(-1.0)
#define e exp(1.0)
//#define io
using namespace std;
const int inf=0x3f3f3f3f;
const int maxn=505;
int a[maxn][maxn];
int mn[maxn],mx[maxn];
int q1[maxn],q2[maxn];
int main()
}int ans=0;
for(int u=1;u<=n;u++);
typedef list::iterator iter;
int main());
it=lis.end();it--;
mp[s]=it;
ans=it->v;
}else);
cnt++;
auto it=lis.end();
it--;
mp[s]=it;
ans=v;
if(cnt>m)
}printf("%d\n",ans);
}elseelseelse if(v==1)elseelse}}
}}}return 0;
}
2019牛客暑期多校訓練營(第三場)F
這個學期終於結束了,暑假就要來了。然而,作為大學畢業要求的一部分,你必須在假期期間參加一些社會服務。最後,你決定加入乙個志願者團體,在山上植樹。為了簡化這個問題,讓我們用乙個n乘以n times n網格。讓我們給行編號1到n從上到下,給列編號1到n從左到右。用aij ij 表示第i行第j列的格仔的高...
牛客暑期多校訓練營B Boundary
給定n個點,然後確定乙個過原點的圓,要使這n個點盡可能多的存在與圓上,最後輸出最多的存在於圓上的點的個數 三點確定乙個圓,我們已知這個圓必定經過原點,所以再依次利用三點求圓心的公式列舉每兩個點與原點 三點不共線 確定的圓心,最後選擇確定次數最多的圓心構成的圓 include include incl...
2019牛客暑期多校訓練營(第三場) B題
題意 給你乙個長度為n的01字串,問該字串中01個數相等的最長子串和子串行分別是多少。分析 首先,大家要知道什麼是子串行,什麼是子串,子串行是不一定是連續的,它可以是原串中任意元素按照相對位置組成的序列,但是子串就不是了,子串一定是連續的,不可分割的按照絕對位置組成的序列。知道這個概念之後,大家可以...