NOIp2018集训test-9-17(pm)
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)的更多相关文章
- NOIp2018集训test-10-24(am&pm)
李巨连续AK三场了,我跟南瓜打赌李巨连续AK七场,南瓜赌李巨连续AK五场. DAY1 T1 qu 按题意拿stack,queue和priority_que模拟即可.特判没有元素却要取出的情况. T2 ...
- 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++ ...
- NOIp2018集训test-9-19(am&pm)
AM 这是一套在长沙考过而且我能记得全部正解的题,然后期望得分300实际得分155. T1 很套路,随便搞(我当年是怎么花大半场时间写T1并且写出现在两倍长的代码的??) //Achen #inclu ...
- NOIp2018集训test-9-22(am/pm) (联考三day1/day2)
szzq学长出的题,先orz一下. day1 倾斜的线 做过差不多的题,写在我自己的博客里,我却忘得一干二净,反而李巨记得清清楚楚我写了的. 题目就是要最小化这个东西 $|\frac{y_i-y_j} ...
- NOIp2018集训test-9-8(pm) (联考一day2)
把T1题读错了,想了一个多小时发现不可做.然后打了t2,常数不优秀.然后去打t3,lct,结果打挂爆0了. 然后今天就爆炸了. 如果这是noip我今年就可以直接回去学常规了.学常规多好,多开心. 今天 ...
- NOIp2018集训test-9-7(pm) (联考一day1)
又被辉神吊打了.今天不仅被辉神李巨吊打,还给基本上给全班垫底了. 看到T3就知道是十进制快速幂,全机房考试的当时应该就我会,结果我tm没找到递推. Orz lyc BM直接水过,Orz wys六个fo ...
- NOIp2018集训test-9-6(pm)
T1T2是洛谷原题.Orz辉神290,被辉神吊起来打. 题 1 包裹快递 二分答案.这题似乎卡精度,不开long double二分500次都过不去. //Achen #include<algor ...
- NOIp2018集训test-9-5(pm)
老张说:这套题太简单啦,你们最多两个小时就可以AK啦! 题 1 数数 我看到T1就懵了,这就是老张两个小时可以AK的题的T1?? 然后我成功地T1写了1h+,后面1h打了t2.t3暴力,就很开心. 等 ...
- NOIp2018集训test-9-2(pm)
其实这套题我爆0了,T1define 写成ddefine编译错误 T2有两个变量爆int 但是我看zwh不在悄悄地改了,我心里还是十分愧疚(没有)的.主要是林巨已经虐我125了要是再虐我200分我大概 ...
随机推荐
- 路由网关--spring cloud zuul
路由网关--spring boot Zuul 1.为什么需要Zuul? Zuul Ribbon 以及 Eureka 相结合,可以实现智能路由和负载均衡的功能, Zuul 能够将请求流量按某种策略分发到 ...
- jstl jsp long to date
jsp 页面中使用jstl el 将long转换为时间类型,并格式化输出 <%@ taglib uri="http://java.sun.com/jsp/jstl/core" ...
- Java 基础 - 继承
子类继承父类的private字段么? Oracle的Java Documentation对Inheritance的定义: 很直白,定义里面就告诉你了这不叫继承.继承的意思是你可以对其进行直接的调用和修 ...
- JCF——set
HashSet LinkedHashSet TreeSet 联系与区别
- matlab中的 ndims(a)、length(a)、size(a) 分别是什么意思?
size(a)表示矩阵每个维度的长度比如size([1 2 3;4 5 6])等于[2 3]表示他有2行3列size([1 2 3])等于[1 3]表示他有1行3列另外size(a,n)表示矩阵a在第 ...
- 【Java基础知识】JNI入门
1.问题:javah or javac -h 在配置好java的环境变量后,java和javac都是可以用的,但是用javah就会出现问题. 会报错误 Unable to locate an exe ...
- python 参数定义库argparse
python 参数定义库argparse 这一块的官方文档在这里 注意到这个库是因为argparse在IDE中和在ipython notebook中使用是有差异的,习惯了再IDE里面用,转到ipyth ...
- socket模拟通信
import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java ...
- 1251 client does not support
1.mysql -uroot -p 123456 (用户root,密码123465) 2.use mysql: 3.ALTER USER 'root'@'localhost' IDENT ...
- sip会话流程以及sip介绍(3)
1.mtk_ims_mo_sip报文交互流程 log: 步骤1:ATD触发MO呼叫尝试步骤2:VDM选择ADS到IMS.步骤3:触发VoLTE UA来设置MO调用.步骤4:SIP信息到P-CSCF进行 ...