bzoj
文章平均质量分 61
我的妹妹syf
我的妹妹不可能那么胖
展开
-
codeforces 113D&bzoj 3270
题目大意:一张图,N(N对于每个点,有Pi的几率留在原地,否则等概率的向相连的点走去。问对于每个点,有多少的概率两个人在这个点相遇?这题显然是概率型dp+高斯消元。但是要注意求方程组的方法。一开始,我试图枚举x,用P[x][x]表示同时在x点相遇的概率,P[i][j]表示从i,j出发同时到达x点的概率。然而这样似乎可以做,但是解N次N*N个点的方程组,复杂度是O(N原创 2017-07-03 15:08:57 · 311 阅读 · 0 评论 -
BZOJ 3158&3275
WA了无数次后,发现自己的板子挂了。。#include<bits/stdc++.h>#define N 3010#define M 1001000using namespace std;int beg[N],cop[N],dis[N];long long a[N],b[N];int to[M],ll[M],nex[M];int n,len=1,S,T;long long...原创 2018-04-26 19:16:34 · 224 阅读 · 0 评论 -
BZOJ 1819: [JSOI]Word Query电子字典
建出Trie树暴力扫一遍。#include<bits/stdc++.h>#define N 200100using namespace std;int s[N][26];int cx[N],en[N];char c[N];int n,m,cnt,l;void insert(int &p,int w){ if(!p) p=++cnt; if(w==l){ e...原创 2018-04-26 15:36:27 · 320 阅读 · 0 评论 -
BZOJ 1569: [JSOI2008]Blue Mary的职员分配
随便记一下状态,然后再随便转移一下,没了。Tips:1.第三天招来的人第四天才能工作2.当天赚的钱可以用来招人#include<bits/stdc++.h>using namespace std;int dp[41][101][41][4][2];int n,x,y,z,A,B;int bes=1008610086;int dfs(int rs,int jq,int sy,i...原创 2018-04-25 21:39:32 · 184 阅读 · 0 评论 -
BZOJ 1568: [JSOI2008]Blue Mary开公司
李超线段树裸题,每个区间维护覆盖当前区间中线的线段,发现答案必然在这些线段中。复杂度听说是两只log,但感觉实际上只有一只?#include<bits/stdc++.h>#define N 100100using namespace std;double s[N<<2],p[N<<2];int done[N<<2];int n;char ...原创 2018-04-25 20:16:09 · 141 阅读 · 0 评论 -
bzoj 1560: [JSOI2009]火星藏宝图
考虑DP,朴素的DP是N^2发现如果有路径A->B,B->C,A->C,那么一定是A->B,然后再B->C也就是说,对某个点有影响的点位于一个凸包上。由于坐标范围只有[1,M],所以复杂度应该是O(NM),实际上可以通过此题。似乎转移的斜率还有单调性,但是懒得再推了。#include<bits/stdc++.h>#define M 1010#defin...原创 2018-04-24 21:06:17 · 150 阅读 · 0 评论 -
bzoj 4421: [Cerc2015] Digit Division
水题#include<cstdio>char s[1<<20];int n,m,i,a=(1e9+8)/2,t;main(){ scanf("%d%d%s",&n,&m,s); for(;i++<n;){ t=(t*10+s[i-1]-'0')%m; if(!t)a=(a<<1)%int(1e9+7); } if(t)...原创 2018-04-24 21:01:10 · 154 阅读 · 0 评论 -
BZOJ 4349
最小树形图模板#include<bits/stdc++.h>#define N 550#define M 10100using namespace std;int n,m,f,len;int t[N],done[N];int rs[N],pla[N];int l[M],r[M];double va[M],zx[N],ans;inline void Add(int a,...原创 2018-04-19 20:36:28 · 221 阅读 · 0 评论 -
BZOJ 3182: [Coci2012]BLOKOVI
感性认识一下,发现方案必然是这样的:也有可能是从下往上一直往右的。这样我们就有了一种O(N^2)做法:枚举转折点,然后计算最右方块的坐标减去最下方块的坐标。考虑从上往下枚举转折点。发现一个方块只有两种放法:往能放的最右放,或者往能放的最左放,也就是说,两种方案坐标的差值为2。还有一个性质:一个方块放左还是放右,对其下的方块的整体形状没有影响。可以得到一个式子:从放在一边转到另一边,相当于其下所有方...原创 2018-04-22 18:49:16 · 236 阅读 · 0 评论 -
BZOJ 1302 ZOJ 2271
简单概率题,新加SPJ,注意n可能是偶数=。=#include<bits/stdc++.h>#define N 110using namespace std;int n;double dp[N][N][N];int main(){ while(scanf("%d",&n)!=-1){ for(int i=0;i<=n;i++) ...原创 2018-04-17 15:04:04 · 211 阅读 · 0 评论 -
bzoj 1468
点分模板,答案随便加加减减(为啥计划里留了一题最简单的没写)#include<cstdio>#include<algorithm>#include<cstring>#define N 16384using namespace std;inline void read(int &a){ int f=a=0;char ch=getchar();...原创 2018-04-08 23:31:47 · 164 阅读 · 0 评论 -
NWERC 2015B/bzoj 4426 Better Productivity
#include#define N 210using namespace std;struct Node{int x,y;}a[N],b[N],c[N];int dp[N][N];int n,p,B,C;inline bool cmp1(Node a,Node b){ if(a.x!=b.x) return a.x<b.x; return a.y<b.y;}inline boo原创 2017-10-02 18:47:32 · 358 阅读 · 0 评论 -
4428: [Nwerc2015]Debugging调试
#include#define N 1000100using namespace std;long long f[N],x,y;int n;long long dfs(int p){ if(f[p]!=-1) return f[p]; if(p==1) return f[p]=0; f[p]=x+y*(p-1); for(int i=2;i<p;i=(p-原创 2017-10-01 20:05:42 · 292 阅读 · 0 评论 -
bzoj 1820: [JSOI2010]Express Service 快递服务
直接写状态的话,可以用dp[i][j][k][l]表示位置在j,k,l,当前完成的是第i个任务。发现j,k,l一定有一个和p[i]相同,可以再减掉一维。这样的话复杂度就是m^2n的。但是空间只有64M,所以还需要再滚动数组压掉一维。#include<bits/stdc++.h>#define N 1010#define M 210using namespace std;int ...原创 2018-04-26 19:19:10 · 301 阅读 · 0 评论