电子商务网站建设需要多少钱,小程序游戏定制开发,建设银行网站打不开别的网站可以,赣州建设局网站T1 我只能说 它是一个比较暴力的dp#xff0c;需要人力讨论... 所以考试觉得讨论太麻烦#xff0c;直接内心崩溃了....(好像这也是我考炸的原因吧) 教训#xff1a;以后要勤快一些#xff0c;代码能力 唉唉唉 #include cstdio
#include cstring
#include 需要人力讨论... 所以考试觉得讨论太麻烦直接内心崩溃了....(好像这也是我考炸的原因吧) 教训以后要勤快一些代码能力 唉唉唉 #include cstdio
#include cstring
#include cstdlib
#include iostream
#include algorithm
#include cmath
#define mem(a,b) memset(a,b,sizeof(a))
#define ll long long
using namespace std;
const int N2000006;
const int mod1000000007;char s[N];
int n;
ll ans;ll f[N][10];void dp()
{if(s[1]0)f[1][0]1;elseif(s[1]1)f[1][3]1;elseif(s[1]*)f[1][4]1;elseif(s[1]?){f[1][0]1;f[1][3]1;f[1][4]1;}for(int i2;in;i){if(s[i]0){f[i][0]f[i-1][0];f[i][0]%mod;f[i][0]f[i-1][1];f[i][0]%mod;}elseif(s[i]1){f[i][3]f[i-1][0];f[i][3]%mod;f[i][3]f[i-1][1];f[i][3]%mod;f[i][1]f[i-1][4];f[i][1]%mod;}elseif(s[i]2){f[i][2]f[i-1][4];f[i][2]%mod;}elseif(s[i]*){f[i][4]f[i-1][3];f[i][4]%mod;f[i][4]f[i-1][2];f[i][4]%mod;f[i][4]f[i-1][4];f[i][4]%mod;}else{f[i][0]f[i-1][0];f[i][0]%mod;f[i][0]f[i-1][1];f[i][0]%mod;f[i][3]f[i-1][0];f[i][3]%mod;f[i][3]f[i-1][1];f[i][3]%mod;f[i][1]f[i-1][4];f[i][1]%mod;f[i][2]f[i-1][4];f[i][2]%mod;f[i][4]f[i-1][3];f[i][4]%mod;f[i][4]f[i-1][2];f[i][4]%mod;f[i][4]f[i-1][4];f[i][4]%mod;}}
}int main(){scanf(%s,s);nstrlen(s);for(int in;i1;--i)s[i]s[i-1];dp();ll ans0;for(int i0;i4;i){if(i2||i3)continue;ans(ansf[n][i])%mod;}coutans;
} T1 T2 这个结论 其实考试的时候已经很接近了 就是 每个点到所有边界点的所有路径中最高山的最小值 然后 可以求个最小生成树在跑bfs #include cstdio
#include cstring
#include cstdlib
#include iostream
#include algorithm
#include cmath
#define mem(a,b) memset(a,b,sizeof(a))
#define ll long long
using namespace std;
const int N316;
struct son
{int v,next,w;
}a1[N*N*3];
int first[N*N*3],e;
void addbian(int u,int v,int w)
{a1[e].vv;a1[e].ww;a1[e].nextfirst[u];first[u]e;
}struct JI
{int u,v,w;bool friend operator (JI a,JI b){return a.wb.w;}
}ji[N*N*3];
int con;int n,m;
int h[N][N];
int dui[N][N];
int ccc;int fa[N*N*3];
int fin(int x)
{if(fa[x]-1)return x;fa[x]fin(fa[x]);return fa[x];
}void kru()
{sort(ji1,ji1con);int now0,x,y;for(int i1;icon;i){xfin(ji[i].u);yfin(ji[i].v);if(x!y){fa[x]y;//printf(%d\n,ji[i].w);addbian(ji[i].u,ji[i].v,ji[i].w);addbian(ji[i].v,ji[i].u,ji[i].w);now;}if(nowccc-1)break;}
}int du[10000006],he,en;
int d[N*N*3];
bool flag[N*N*3];
void work()
{mem(d,60);int now;he1;en0;for(int in*m1;iccc;i){d[i]0;du[en]i;flag[i]1;}int temp,temp1;while(enhe){nowdu[he];flag[now]0;//printf(now%d\n,now);for(int ifirst[now];i!-1;ia1[i].next){tempa1[i].v;temp1max(d[now],a1[i].w);if(d[temp]temp1){d[temp]temp1;if(!flag[temp]){flag[temp]1;du[en]temp;}}}}
}int main(){//freopen(T2.in,r,stdin);mem(fa,-1);mem(first,-1);scanf(%d%d,n,m);for(int i1;in;i)for(int j1;jm;j)scanf(%d,h[i][j]),dui[i][j](i-1)*mj;cccn*m;for(int i1;in;i)dui[i][0]ccc,dui[i][m1]ccc;for(int j1;jm;j)dui[0][j]ccc,dui[n1][j]ccc;for(int i0;in;i)for(int j1;jm;j)ji[con](JI){dui[i][j],dui[i1][j],max(h[i][j],h[i1][j])};//ji[con](JI){dui[i1][j],dui[i][j],max(h[i][j],h[i1][j])};for(int j0;jm;j)for(int i1;in;i)ji[con](JI){dui[i][j],dui[i][j1],max(h[i][j],h[i][j1])};//ji[con](JI){dui[i][j1],dui[i][j],max(h[i][j],h[i][j1])};kru();work();/*printf(\n);for(int i1;iccc;i)printf(i%d %d\n,i,d[i]);printf(\n);*/for(int i1;in;i){for(int j1;jm;j)printf(%d ,d[dui[i][j]]-h[i][j]);printf(\n);}
} T2 T3 这个题 考试也是很接近但是无奈以前懒根本没有学莫比乌斯函数的性质 #include cstdio
#include cstring
#include cstdlib
#include iostream
#include algorithm
#include cmath
#define C(n) ((ll)(n)*((n)-1)/2)
#define mem(a,b) memset(a,b,sizeof(a))
#define ll long long
using namespace std;
const int N200006;
const int MAXVAL500006;
struct son
{int v,next;
}a1[N*(16)];
int first[N*(16)],e;
void addbian(int u,int v)
{a1[e].vv;a1[e].nextfirst[u];first[u]e;
}int mu[MAXVAL],prime[MAXVAL],con;
bool he[MAXVAL];void get_mu()
{mu[1]1;for(int i2;iMAXVAL;i){if(!he[i]){prime[con]i;mu[i]-1;}for(int j1;jconprime[j]*iMAXVAL;j){he[i*prime[j]]1;if(i%prime[j]0){mu[i*prime[j]]0;break;}elsemu[i*prime[j]]-mu[i];}}
}int n,m;
int a[N];
bool flag[N];
ll sum[MAXVAL];int main(){//freopen(gcd1.in,r,stdin);//freopen(T3.out,w,stdout);mem(first,-1);scanf(%d%d,n,m);for(int i1;in;i)scanf(%d,a[i]);get_mu();for(int i1;in;i)for(int j1;j*ja[i];j)if(a[i]%j0){addbian(i,j);if(j!a[i]/j)addbian(i,a[i]/j);}int tin;ll now0;for(int i1;im;i){scanf(%d,tin);if(flag[tin])for(int jfirst[tin];j!-1;ja1[j].next){now-((ll)mu[a1[j].v]*C(sum[a1[j].v]));--sum[a1[j].v];now((ll)mu[a1[j].v]*C(sum[a1[j].v]));}elsefor(int jfirst[tin];j!-1;ja1[j].next){now-((ll)mu[a1[j].v]*C(sum[a1[j].v]));sum[a1[j].v];now((ll)mu[a1[j].v]*C(sum[a1[j].v]));}flag[tin]^1;printf(%lld\n,now);}
} T3 至此可以总结了: 1.考试不要慌不要嫌麻烦 2.做人要勤快... 转载于:https://www.cnblogs.com/A-LEAF/p/7624969.html