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. java中文乱码转换

    String str=URLDecoder.decode(String, "UTF-8")

  2. NLP(一) Python常用开发工具

    一.Numpy NumPy系统是Python的一种开源的数值计算包. 包括: 1.一个强大的N维数组对象Array: 2.比较成熟的(广播)函数 库: 3.用于整合C/C++和Fortran代码的工具 ...

  3. bootstrap相关使用

    如果想做成响应式效果,使用栅格系统产生 小于768手机端 : col-xs- 大于768小于992平板 : col-sm- 大于992小于1200 : col-md- 大于1200 : col-lg- ...

  4. 【JZOJ6431】【luoguP5658】【CSP-S2019】括号树

    description analysis 用栈维护一下树上路径未匹配的左括号,然后在树上找右括号匹配,设\(f[i]\)为\(i\)节点的贡献,\(g[i]\)是答案 为左括号可以直接继承父节点的信息 ...

  5. Delphi QueryPerformanceCounter、QueryPerformanceFrequency函数,精确定时到ns

    var t1,t2:int64; r1,r2,r3:double; begin QueryPerformanceFrequency(c1);//WINDOWS API 返回计数频率 (Intel86: ...

  6. Http头域字段详解

    HTTP(HyperTextTransferProtocol) 是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP协议的详细内容请参考RFC2616.HTTP协议采用了请求/响应模型.客 ...

  7. AntiPlug

    反插件工程 #pragma once #ifndef __ENHANFUNC_H__ #define __ENHANFUNC_H__ #include <iostream> #includ ...

  8. 数据可视化(Echart) :柱状图、折线图、饼图等六种基本图表的特点及适用场合

    数据可视化(Echart) 柱状图.折线图.饼图等六种基本图表的特点及适用场合 参考网址 效果图 源码 <!DOCTYPE html> <html> <head> ...

  9. MarkDown 快速开始 基础教学

    # MarkDown 快速上手 # > [源代码](https://www.cnblogs.com/qiyuexin/p/9932941.html) > by qyx@2018/11/07 ...

  10. Git 学习第一天

    本文是根据廖雪峰老师的git教程记录的学习笔记,特此说明,原教程链接https://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c ...