
牛客每日一题
巴扎嘿呀
学习知识图谱中~欢迎交流
展开
-
Monotonic Matrix(lemma定理)
lemma定理:有n对点,设表示到的路径方案数则行列式表示到的严格不相交路径的方案数#include<bits/stdc++.h>#define ll long longusing namespace std;const ll mod=1e9+7;const int N=2e3+100;ll fac[N];ll qp(ll a,ll b){ ll res=1; while(b){ if(b&1) res=res*a%mod; b>>=..原创 2021-01-24 14:43:15 · 1132 阅读 · 0 评论 -
Different Integers(莫队)
size取1000,不然会tle#include<bits/stdc++.h>using namespace std;const int N=1e5+100;int a[N];int belong[N],cnt[N];int n,query;int l,r;int now;int ans[N];struct P{ int l,r; int id;}q[N];bool cmp(P x,P y){ //return belong[x.l]==belong[y.l].原创 2021-01-24 17:39:44 · 200 阅读 · 1 评论 -
Removal(线性dp)
#include<bits/stdc++.h>#define ll long longusing namespace std;const int N=1e5+100;const ll mod=1e9+7;int s[N];int pre[N];int h[15];int n,m,k;ll dp[N][15];ll f(int x,int y){ if(y<0) return 0; if(y==0) return 1; if(y==x) return 1; if.原创 2021-01-24 17:40:54 · 147 阅读 · 0 评论 -
CCA的小球(组合数学+容斥定理)
#include<bits/stdc++.h>#define ll long longusing namespace std;const int N=1e6+100;const int mod=1e9+7;int n;int m;ll fac[N],inv[N],inv1[N];unordered_map<int,int> mp;ll C(int a,int b){ return fac[a]*inv[b]%mod*inv[a-b]%mod;}ll qmi(.原创 2021-03-16 20:35:31 · 188 阅读 · 0 评论 -
CCA的子树(dfs)
#include<bits/stdc++.h>#define ll long longusing namespace std;const int N=2e5+100;const ll inf=1e18;ll w[N];ll mx[N];ll sum[N];vector<int> v[N];ll ans=-inf;void dfs(int u,int fa){ ll maxn=-inf; sum[u]=w[u]; for(int i=0;i<v[u]..原创 2021-03-16 17:04:18 · 89 阅读 · 0 评论 -
CCA的搬运(模拟)
按照题意模拟即可#include<bits/stdc++.h>using namespace std;const int N=2010;int a[N];int s[N];int q[N];int cnt;bool st[N];void add(int u){ int tmp=q[u]; for(int i=u;i>=2;i--) q[i]=q[i-1]; q[1]=tmp; for(int i=1;i<=u;i++) s[i]=s[i-1]+a[q[.原创 2021-03-16 16:34:03 · 100 阅读 · 0 评论 -
Tallest Cow(差分)
#include<bits/stdc++.h>using namespace std;int N,I,H,R;int a[10010];bool st[10010][10010];int main(){ scanf("%d%d%d%d",&N,&I,&H,&R); a[0]=H; while(R--){ int x,y;scanf("%d%d",&x,&y); if(x>y).原创 2021-03-04 17:38:24 · 370 阅读 · 1 评论 -
The Cow Lineup(思维)
#include<iostream>#include<cstdio>#include<cstring>using namespace std;const int N=1e4+100;bool st[N];int main(){ int n,k;scanf("%d%d",&n,&k); int ans=0;int t=0; for(int i=1;i<=n;i++){ int x;scanf("%d.原创 2021-03-03 14:35:13 · 154 阅读 · 1 评论 -
区区区间(线段树)
#include<bits/stdc++.h>#define ll long longusing namespace std;const int N=2e5+100;int a[N],n,m;ll sum[N<<2],lazy[N<<2];ll calc(ll a1,ll n){ return (a1+a1+n-1)*n/2;}void push_up(int rt){ sum[rt]=sum[rt<<1]+sum[rt<.原创 2021-03-02 17:22:48 · 84 阅读 · 0 评论 -
Supermarket(贪心)
#include<bits/stdc++.h>using namespace std;struct Node { int p, d;}a[10005];bool cmp1(Node a, Node b) { return a.d < b.d;}priority_queue<int,vector<int>, greater<int> > pq; int main() { int n; while (~scan.原创 2021-03-01 23:24:01 · 252 阅读 · 0 评论 -
失衡天平(背包dp)
#include<bits/stdc++.h>using namespace std;const int inf=0x3f3f3f3f;const int N=10000;int n,m;int a[110];int f[110][10010];int main(){ scanf("%d%d",&n,&m); for(int i=1;i<=n;i++)scanf("%d",&a[i]); memset(f,-inf,sizeo.原创 2021-03-01 15:31:55 · 153 阅读 · 0 评论 -
最大子矩阵(多维dp)
#include<bits/stdc++.h>using namespace std;int a[110][110];int dp[110][110][20];int s[110][3];int main(){ int n,m,t; cin>>n>>m>>t; for(int i=1;i<=n;i++) for(int j=1;j<=m;j++){ cin>>.原创 2021-02-10 00:17:17 · 151 阅读 · 0 评论 -
小A与小B(双向bfs)
#include <bits/stdc++.h>#define ll long longconst int maxn = 1010;using namespace std;int dx[8]={0,0,1,-1,1,1,-1,-1};int dy[8]={1,-1,0,0,1,-1,1,-1};bool visited[2][maxn][maxn];char maps[maxn][maxn];int n,m;struct point{ int x,y; po.原创 2021-02-09 03:24:00 · 195 阅读 · 0 评论