乡镇网站模板,代理网络是什么意思,免费发布推广信息的平台,沈阳建设工程信息网中介前言
145#xff08;175#xff1f;#xff09;pts 100450#xff08;30#xff1f;#xff09; rnk11#xff08;8#xff1f;#xff09; 之所以有括号是因为T3莫名其妙的TLE了#xff1f; 考后我一模一样的码再交一遍30分就到手了… 应该不是我的问题吧#xff…前言
145175pts 10045030 rnk118 之所以有括号是因为T3莫名其妙的TLE了 考后我一模一样的码再交一遍30分就到手了… 应该不是我的问题吧今天考试的机子确实有些诡异一开始评测乱七八糟的qwq。
感觉整体发挥没有大的失误。 但是排名就是不太好… 感觉今天题也不算太简单阿qwq 可能只有我这么认为吧 如果一场考试摆烂的时间太长似乎几乎很难拿到太好的排名… 就像这次最后1045左右开始就没啥事干了一直在检查代码… 中间还和lyn学长聊了回天
题目解析
字符变换character
由于操作1只要字母个数相同就可以任意互相转化属于同一个“等价类”其方案数也可以用不可重排列求得__int128 天下第一 当 n30 时等价类个数是 5500 左右以后称等价类个数为 www 然后题目给出的操作二的转化就是在不同的等价类之间转移暴力加边复杂度是 O(wm)O(wm)O(wm) 的可以接受。 然后跑个tarjan缩点再跑个带权最长路径的简单 dp 即可。
这个题确实没有太大的难度思路整体是比较顺的。
格子染色color
魔法题目。 拿到45分足矣。 本题的正解做法就是观察sg函数表找规律离大谱。 尤其 k1 的sg规律是“当n52时存在一个大小为 34 的周期”。 这个甚么神人能看出来啊… 其实你要告诉我是类似的东西也未见得看不出来但是实在不会想到会是这种鬼畜的规律… k2的 sg 性质的推导可以使用类似于数学归纳法的东西然而打表还是很好用其实这个规律比那个鬼畜东西强多了但是由于 k1 我都没看出来规律就没有打 k2 的表大损失。
以线覆圆circle
很妙的一个状压 dp。 非离散的期望感觉根本没法做的样子… 关键是一个方案真正关心的只有其整数部分的绝对大小和小数部分的相对大小关系。 所以可以暴力枚举小数部分的大小然后就变成了类似于 n∗mn*mn∗m 个点上状压。 然鹅由于某些奥秘重重的问题我就是过不去。
最后写的n2点30分被ybt机子吃了 赛后再交一遍一样的码就拿到了30分… 我谔谔。
代码
T1
#includebits/stdc.h
using namespace std;
#define ll __int128
#define ull unsigned long long
#define debug(...) fprintf(stderr,__VA_ARGS__)
#define ok debug(OK\n)
inline ll read(){ll x(0),f(1);char cgetchar();while(!isdigit(c)){if(c-)f-1;cgetchar();}while(isdigit(c)){x(x1)(x3)c-0;cgetchar();}return x*f;
}
void write(ll x){if(x9) write(x/10);putchar(0x%10);
}
const int N5500;int n,m;int num[N][5],tot;
ll jc[35],val[N1];int id[31][31][31][31];
int x[5];
void print(int x){printf((%d %d %d %d) ,num[x][1],num[x][2],num[x][3],num[x][4]);
}
void dfs(int k,int lft){if(k4){x[k]lft;tot;for(int i1;i4;i) num[tot][i]x[i];val[tot]jc[n]/jc[x[1]]/jc[x[2]]/jc[x[3]]/jc[x[4]];id[x[1]][x[2]][x[3]][x[4]]tot;//printf(%d: ,tot);print(tot);puts();return;}for(int i0;ilft;i){x[k]i;dfs(k1,lft-i);}return;
}
struct node{int to,nxt;
}p[N*N];
int fi[N1],cnt;
inline void addline(int x,int y){p[cnt](node){y,fi[x]};fi[x]cnt;
}
int s[5],t[5];
int now[5];
char s1[N],s2[N];
int dfn[N1],low[N1],zhan[N1],col[N1],top,tim;
void tarjan(int x){dfn[x]low[x]tim;zhan[top]x;for(int ifi[x];~i;ip[i].nxt){int top[i].to;if(!dfn[to]){tarjan(to);low[x]min(low[x],low[to]);}else if(!col[to]) low[x]min(low[x],dfn[to]);}if(low[x]dfn[x]){col[x]tot;val[tot]val[x];while(zhan[top]!x){int nowzhan[top--];col[now]tot;val[tot]val[now];}top--;}
}
ll dp[N1];
ll find(int x){if(dp[x]) return dp[x];dp[x]val[x];for(int ifi[x];~i;ip[i].nxt){int top[i].to;dp[x]max(dp[x],find(to)val[x]);}return dp[x];
}signed main(){freopen(character.in,r,stdin);freopen(character.out,w,stdout);//printf(%d\n,sizeof(p)/1024/1024);//printf(%d\n,sizeof(e)/1024/1024);//printf(%d\n,sizeof(id)/1024/1024);//printf(%d\n,sizeof(val)/1024/1024);memset(fi,-1,sizeof(fi));cnt-1;nread();mread();ok;jc[0]1;for(int i1;in;i) jc[i]jc[i-1]*i;dfs(1,n);//printf(tot%d\n,tot);for(int tim1;timm;tim){memset(s,0,sizeof(s));memset(t,0,sizeof(t));scanf( %s %s,s11,s21);int lenstrlen(s11);if(lenn) continue;for(int i1;ilen;i) s[s1[i]-A1];for(int i1;ilen;i) t[s2[i]-A1];//printf(\ntim%d\n,tim);//for(int i1;i4;i) printf(%d ,s[i]);puts();//for(int i1;i4;i) printf(%d ,t[i]);puts();for(int i1;itot;i){int flag(0);for(int j1;j4;j){now[j]num[i][j]-s[j];if(now[j]0) flag1;}if(flag) continue;for(int j1;j4;j) now[j]t[j];int toid[now[1]][now[2]][now[3]][now[4]];addline(i,to);//printf(%d-%d\n,i,to);}}ntot;for(int i1;in;i){if(!dfn[i]) tarjan(i);}for(int i1;in;i){for(int jfi[i];~j;jp[j].nxt){int top[j].to;if(col[i]col[to]) continue;addline(col[i],col[to]);}}ll ans(0);for(int in1;itot;i) ansmax(ans,find(i));write(ans);return 0;
}
/*
*/
T2
#includebits/stdc.h
using namespace std;
#define ll long long
#define ull unsigned long long
#define debug(...) fprintf(stderr,__VA_ARGS__)
inline ll read(){ll x(0),f(1);char cgetchar();while(!isdigit(c)){if(c-)f-1;cgetchar();}while(isdigit(c)){x(x1)(x3)c-0;cgetchar();}return x*f;
}
const int N1e5100;int n,m;
int a[N];struct AA{int sg[N];int bac[N],clo;int find(int x){if(x54){x-54;x%34;x54;}if(x2) return 0;if(sg[x]!-1) return sg[x];for(int i2;ix-1;i){find(i-1);find(x-i);}clo;for(int i2;ix-1;i){bac[find(i-1)^find(x-i)]clo;}sg[x]0;while(bac[sg[x]]clo) sg[x];return sg[x];}void work(){memset(sg,-1,sizeof(sg));//for(int i1;i1000;i) printf(%d\n,find(i));//exit(0);int now1,ans(0);for(int i1;in;i){if(a[i]){ans^find(now);now0;}else now;}now;ans^find(now);if(ans) printf(YES\n);else printf(NO\n);}
}A;struct BB{int sg[N][3][3];int bac[N],clo;int find(int x,int l,int r){if(!l!r) return x1;else if(!l||!r) return x;else return lr;if(x0) return 0;if(sg[x][l][r]!-1) return sg[x][l][r];for(int i1;ix;i){for(int j1;j2;j){if(i1jl) continue;if(ixjr) continue;find(i-1,l,j);find(x-i,j,r);}}clo;for(int i1;ix;i){for(int j1;j2;j){if(i1jl) continue;if(ixjr) continue;bac[find(i-1,l,j)^find(x-i,j,r)]clo;}}sg[x][l][r]0;while(bac[sg[x][l][r]]clo) sg[x][l][r];//printf(x%d (%d %d) sg%d\n,x,l,r,sg[x][l][r]);return sg[x][l][r];}void work(){memset(sg,-1,sizeof(sg));int now0,lst0,ans0;for(int i1;in1;i){if(a[i]||in){ans^find(now,lst,a[i]);now0;lsta[i];}else now;//printf(i%d now%d lst%d ans%d\n,i,now,lst,ans);}ans^find(now,lst,0);if(ans) puts(YES);else puts(NO);}
}B;struct CC{void work(){int num(0);for(int i1;in;i) num(a[i]0);if(num1) puts(YES);else puts(NO);}
}C;signed main(){freopen(color.in,r,stdin);freopen(color.out,w,stdout);nread();mread();for(int i1;in;i) a[i]read();if(m1) A.work();else if(m2) B.work();else C.work();return 0;
}
/*
*/
T3
调不出来了
#includebits/stdc.h
using namespace std;
#define ll long long
#define ull unsigned long long
#define debug(...) fprintf(stderr,__VA_ARGS__)
inline ll read(){ll x(0),f(1);char cgetchar();while(!isdigit(c)){if(c-)f-1;cgetchar();}while(isdigit(c)){x(x1)(x3)c-0;cgetchar();}return x*f;
}
const int N1e5100;
const int mod998244353;int n,m;
ll f[350][150],mi[8],b;
int a[8],vis[8],pl[8],id[8];
double ans;
void calc(){for(int i1;in;i) id[pl[i]]i;memset(f,0,sizeof(f));f[a[1]*n1][1]1;for(int i1;in*m;i){int k(i-1)%n1;for(int s0;smi[n];s){if(smi[k-1]) continue;for(int pi;pn*m;p){f[min(n*m1,max(p,ia[k]*n))][s|mi[k-1]]f[p][s];}}}ans1.0*f[n*m1][mi[n]-1];
}
int clo;
void dfs(int k){if(kn){calc();clo;return;}for(int i2;in;i){if(vis[i]) continue;pl[k]i;vis[i]1;dfs(k1);vis[i]0;}return;
}signed main(){freopen(circle.in,r,stdin);freopen(circle.out,w,stdout);nread();mread();b1;for(int i1;in;i) b*m*i;for(int i1;in;i) a[i]read();sort(a1,a1n);swap(a[1],a[n]);mi[0]1;for(int i1;in;i) mi[i]mi[i-1]1;vis[1]1;pl[1]1;dfs(2);//for(int i1;in;i) ans/i;ans/b;//ans*2;printf(%.12lf\n,ans);//printf(b%lld clo%d\n,b,clo);return 0;
}
/*
4 6
1 2 3 4
*/
总结
今天整体还不错没有挂分。 ybt机子的锅就不算了吧。