T1记忆(memory)

我大概是只记忆只有七秒的金鱼吧。看了下以前的代码发现真的很简单,但是考场上只打了个暴力,虽然骗了88pt。就是枚举选的是哪个串,然后vis[i]表示选了i这些位能不能猜出它,然后dp选到i这个状态的概率。

 //Achen
#include<bits/stdc++.h>
#define For(i,a,b) for(int i=(a);i<=(b);i++)
#define Rep(i,a,b) for(int i=(a);i>=(b);i--)
#define Formylove return 0
const int N=,M=;
using namespace std;
typedef long long LL;
typedef double db;
int n,len,vis[M],cnt[M];
char S[][];
db p[M],ans; template<typename T>void read(T &x) {
char ch=getchar(); T f=; x=;
while(ch!='-'&&(ch<''||ch>'')) ch=getchar();
if(ch=='-') f=-,ch=getchar();
for(;ch>=''&&ch<='';ch=getchar()) x=x*+ch-''; x*=f;
} #define ANS
int main() {
#ifdef ANS
freopen("memory.in","r",stdin);
freopen("memory.out","w",stdout);
#endif
read(n);
For(i,,n) scanf("%s",S[i]);
len=strlen(S[]);
int up=(<<len)-;
For(s,,up) {
int tp=s;
while(tp) {
tp-=(tp&(-tp));
cnt[s]++;
}
}
For(i,,n) {
For(j,,n) if(i!=j) {
int t=;
For(k,,len-) if(S[i][k]==S[j][k])
t|=(<<k);
vis[t]=i;
}
Rep(s,up,) if(vis[s]==i) {
For(j,,len-) if(s&(<<j))
vis[s^(<<j)]=i;
}
For(j,,up) p[j]=;
p[]=1.0/(1.0*n);
For(s,,up) if(p[s]!=) {
if(vis[s]!=i) ans+=p[s]*cnt[s];
else {
For(j,,len-) if(!(s&(<<j))) {
p[s|(<<j)]+=p[s]*(1.0/(1.0*(len-cnt[s])));
}
}
}
}
printf("%.10lf\n",ans);
Formylove;
}
/*
3
aaA
aBa
Caa
*/

正解如注释。看到n有50就不想用二进制表示n的情况,真是太蠢了。

 //Achen
#include<bits/stdc++.h>
#define For(i,a,b) for(int i=(a);i<=(b);i++)
#define Rep(i,a,b) for(int i=(a);i>=(b);i--)
#define Formylove return 0
const int M=;
using namespace std;
typedef long long LL;
typedef double db;
int n,len,tot[M],cnt[M];
LL no[M];
char s[][];
db f[M],ans; template<typename T>void read(T &x) {
char ch=getchar(); T f=; x=;
while(ch!='-'&&(ch<''||ch>'')) ch=getchar();
if(ch=='-') f=-,ch=getchar();
for(;ch>=''&&ch<='';ch=getchar()) x=x*+ch-''; x*=f;
} #define ANS
int main() {
#ifdef ANS
freopen("memory.in","r",stdin);
freopen("memory.out","w",stdout);
#endif
read(n);
For(i,,n) scanf("%s",s[i]);
len=strlen(s[]);
int up=(<<len)-;
For(i,,n) For(j,,n) if(i!=j) {
int t=;
For(k,,len-) if(s[i][k]==s[j][k])
t|=(<<k);
no[t]|=(1LL<<i);
no[t]|=(1LL<<j);
}//no[t]:t状态下不能分清的串
Rep(i,up,)
For(j,,len-) if(i&(<<j))
no[i^(<<j)]|=no[i];
Rep(i,up,) {
LL tp=no[i];
while(tp) {
tot[i]++;
tp-=(tp&(-tp));
} //tot[i]:i状态下不能分清的串的个数
int t=i;
while(t) {
cnt[i]++;
t-=(t&(-t));
}//i中1的个数
}
Rep(i,up,) if(tot[i]) { //i状态下期望猜多少次
db c=len-cnt[i];//还没被猜到的位数
For(j,,len-) if(!(i&(<<j))) {
db t1=tot[i],t2=tot[i|(<<j)];
f[i]+=(t2/t1*(f[i|(<<j)]+1.0)+(t1-t2)/t1)/c;
}
}
printf("%.10lf\n",f[]);
Formylove;
}
/*
3
aaA
aBa
Caa
*/

T2神经元(neuron)

prufer序列的水题,f[i][j]表示放了i个数进序列序列长度为j的方案数,k的答案就是序列长度为k-2的方案乘上看有多少个叶子,在剩下的点里选那么多个叶子的方案。

 //Achen
#include<bits/stdc++.h>
#define For(i,a,b) for(int i=(a);i<=(b);i++)
#define Rep(i,a,b) for(int i=(a);i>=(b);i--)
#define Formylove return 0
const int N=,p=1e9+;
using namespace std;
typedef long long LL;
typedef double db;
int n,d[N];
LL f[N][N],C[N][N]; template<typename T>void read(T &x) {
char ch=getchar(); T f=; x=;
while(ch!='-'&&(ch<''||ch>'')) ch=getchar();
if(ch=='-') f=-,ch=getchar();
for(;ch>=''&&ch<='';ch=getchar()) x=x*+ch-''; x*=f;
} LL mo(LL x) { return x>=p?x-p:x; } #define ANS
int main() {
#ifdef ANS
freopen("neuron.in","r",stdin);
freopen("neuron.out","w",stdout);
#endif
read(n);
For(i,,n) read(d[i]);
For(i,,n) C[i][]=;
For(i,,n) For(j,,i) C[i][j]=(C[i-][j]+C[i-][j-])%p;
f[][]=;
For(x,,n) {
Rep(i,x,) Rep(j,n-,) if(f[i][j]) {
For(l,,min(n--j,d[x]-))
f[i+][j+l]=mo(f[i+][j+l]+f[i][j]*C[j+l][l]%p);
}
}
For(i,,n) {
if(i==) printf("%d ",n);
else if(i==) {
if(i!=n) printf("%lld ",C[n][]);
else printf("%lld\n",C[n][]);
}
else {
LL rs=;
For(j,,i) rs=mo(rs+f[j][i-]*C[n-j][i-j]%p);
if(i!=n) printf("%lld ",rs);
else printf("%lld\n",rs);
}
}
Formylove;
}

T3子串(substring)

sam上维护lct的题,没看,noip后要是没退役再来写吧。

NOIp2018集训test-9-17(pm)的更多相关文章

  1. NOIp2018集训test-10-24(am&pm)

    李巨连续AK三场了,我跟南瓜打赌李巨连续AK七场,南瓜赌李巨连续AK五场. DAY1 T1 qu 按题意拿stack,queue和priority_que模拟即可.特判没有元素却要取出的情况. T2 ...

  2. NOIp2018集训test-9-21(am/pm)

    Am DAY1 抄代码 送分题 //Achen #include<bits/stdc++.h> #define For(i,a,b) for(int i=(a);i<=(b);i++ ...

  3. NOIp2018集训test-9-19(am&pm)

    AM 这是一套在长沙考过而且我能记得全部正解的题,然后期望得分300实际得分155. T1 很套路,随便搞(我当年是怎么花大半场时间写T1并且写出现在两倍长的代码的??) //Achen #inclu ...

  4. NOIp2018集训test-9-22(am/pm) (联考三day1/day2)

    szzq学长出的题,先orz一下. day1 倾斜的线 做过差不多的题,写在我自己的博客里,我却忘得一干二净,反而李巨记得清清楚楚我写了的. 题目就是要最小化这个东西 $|\frac{y_i-y_j} ...

  5. NOIp2018集训test-9-8(pm) (联考一day2)

    把T1题读错了,想了一个多小时发现不可做.然后打了t2,常数不优秀.然后去打t3,lct,结果打挂爆0了. 然后今天就爆炸了. 如果这是noip我今年就可以直接回去学常规了.学常规多好,多开心. 今天 ...

  6. NOIp2018集训test-9-7(pm) (联考一day1)

    又被辉神吊打了.今天不仅被辉神李巨吊打,还给基本上给全班垫底了. 看到T3就知道是十进制快速幂,全机房考试的当时应该就我会,结果我tm没找到递推. Orz lyc BM直接水过,Orz wys六个fo ...

  7. NOIp2018集训test-9-6(pm)

    T1T2是洛谷原题.Orz辉神290,被辉神吊起来打. 题 1 包裹快递 二分答案.这题似乎卡精度,不开long double二分500次都过不去. //Achen #include<algor ...

  8. NOIp2018集训test-9-5(pm)

    老张说:这套题太简单啦,你们最多两个小时就可以AK啦! 题 1 数数 我看到T1就懵了,这就是老张两个小时可以AK的题的T1?? 然后我成功地T1写了1h+,后面1h打了t2.t3暴力,就很开心. 等 ...

  9. NOIp2018集训test-9-2(pm)

    其实这套题我爆0了,T1define 写成ddefine编译错误 T2有两个变量爆int 但是我看zwh不在悄悄地改了,我心里还是十分愧疚(没有)的.主要是林巨已经虐我125了要是再虐我200分我大概 ...

随机推荐

  1. vue搭建vue-cli脚手架项目

    一.Node.js 1.介绍 Node.js is a JavaScript runtime built on Chrome's V8 JavaScript engine.Node.js是一个基于Ch ...

  2. 概率——17icpc西安

    不知道为什么是这样子的.. #include<bits/stdc++.h> using namespace std; int m,n; int main(){ while(scanf(&q ...

  3. hive自定义函数UDF UDTF UDAF

    Hive 自定义函数 UDF UDTF UDAF 1.UDF:用户定义(普通)函数,只对单行数值产生作用: UDF只能实现一进一出的操作. 定义udf 计算两个数最小值 public class Mi ...

  4. js面向对象编程(第2版)——js继承多种方式

    附带书籍地址: js面向对象编程(第2版)

  5. CentOS7编译安装MPLAYER!!!

    Linux装软件就是折磨人!! Mplayer官网下好release版本 然后./configure --[options] 注意:--prefix=/usr/local/mplayer 是安装路径- ...

  6. Conversion Specifiers and the Resulting Printed Output

    Conversion Specification Output %a Floating-point number, hexadecimal digits and p-notation (C99). % ...

  7. Appium 工作原理

    Appium - automation for mobile apps   一.Appium架构介绍 官网:www.appium.io 由SauceLab公司主持.并在Google的GATC2013会 ...

  8. Echart使用js进行封装成函数

    Echart使用js进行封装成函数 主要是对 json 串的封装,使用 js 进行对 json 的解析.之间用的最多是循环取出数组中的值,如果拿去使用可直接修改 json 就好. 上一篇把二维的封装好 ...

  9. jeecg的$.dialog的一些参数

      jeecg表单弹出框采用的技术是lhgdialog 一.配置全局默认参数 (function(config){ config['extendDrag'] = true; // 注意,此配置参数只能 ...

  10. playbackRate控制音频播放倍速

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...