享受爆零的快感

老叶本来是让初三的打的,然后我SB的去凑热闹了

TM的T2写炸了(去你妹的优化),T1连-1的分都忘记判了,T3理所当然的不会

光荣革命啊!

T1

思维图论题,CHJ dalao给出了正解但-1输成0了缅怀

而且这题不能用读优玄学

思路也很新奇,先跑一遍MST,判断是否有无解的情况

然后看一下MST中与1相连的边有几条

如果小于k那么我们把所有与1相连的边减上一个值使它们优先被选,然后跑MST

大于k就加上去即可

注意到这个值可以二分,因此不停做MST即可

CODE

#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N=5005,M=100005;
const double EPS=1e-5;
struct data
{int l,r,s;double add;
}a[M];
int n,m,k,cnt,father[N],tot;
long long ans;
inline bool comp(data a,data b)
{return a.s+a.add<b.s+b.add;
}
inline int getfather(int k)
{return father[k]==k?k:father[k]=getfather(father[k]);
}
inline int MST(double x)
{register int i; int res=0,tot=0;for (i=1;i<=m;++i)if (a[i].l==1||a[i].r==1) a[i].add=x;sort(a+1,a+m+1,comp);for (i=1;i<=n;++i)father[i]=i; ans=0;for (i=1;i<=m;++i){int fx=getfather(a[i].l),fy=getfather(a[i].r);if (fx!=fy){if (a[i].l==1||a[i].r==1) ++res;ans+=a[i].s; ++tot;father[fx]=fy;}}if (tot!=n-1) return -1;return res;
}
int main()
{freopen("path.in","r",stdin); freopen("path.out","w",stdout);register int i;scanf("%d%d%d",&n,&m,&k);for (i=1;i<=m;++i){scanf("%d%d%d",&a[i].l,&a[i].r,&a[i].s);if (a[i].l==1||a[i].r==1) ++tot;}if (tot<k||MST(0)==-1) { puts("-1"); return 0; }double l=-100000.0,r=100000.0;while (r-l>EPS){double mid=(l+r)/2.0; int t=MST(mid);if (t==k) { printf("%lld",ans); break; }if (t>k) l=mid; else r=mid;}return 0;
}

T2

这么小的数据范围,就是套路的状压DP

只有我一个人想到记忆化搜索暴力玄学搜索么

好吧又是我ZZ了

首先发现n的范围只有15,果断状压成01串表示第几个串选或不选

而后预处理一个数组g[i][j]表示当t[i]上的字符为j时,与其它串的匹配情况(用二进制下压缩01串表示)

例如,四个串为

?a?
ab?
aa?
??b

例如

  • g[2]['a']=1101(与第四个,第三个,第一个串分别匹配)=13

  • g[1]['a']=1111=15

然后我们设DP数组f[i][j]表示匹配到第i位时(第i位尚未匹配)所有串的匹配情况为j(二进制下的01串)时方案总数

则有f[i][j]可以转移出

f[i+1][j&g[i][ch]]+=f[i][j]('a'<=ch<='z')

因为这里只要一个位置不匹配那就整个串都不匹配,因此只有两边都是1才满足要求

最后ans+=所有j的1的个数恰好为k个的f[len+1][j]

C++没有以字符为下标的数组,因此所有字符减去'a'即可

CODE

#include<cstdio>
#include<cstring>
using namespace std;
const int N=20,D=50,mod=1000003;
int g[D+5][30],f[D+5][(1<<N+1)+5],n,k,ans,t;
char s[N][55],ch;
inline int count(int x)
{int tot=0;while (x) tot+=x&1,x>>=1;return tot;
}
int main()
{freopen("question.in","r",stdin); freopen("question.out","w",stdout);register int i,j; scanf("%d",&t);while (t--){memset(f,0,sizeof(f));memset(g,0,sizeof(g));scanf("%d%d",&n,&k);for (i=1;i<=n;++i)scanf("%s",s[i]+1); int len=strlen(s[1]+1);for (i=1;i<=len;++i)for (ch='a';ch<='z';++ch)for (j=1;j<=n;++j)if (s[j][i]=='?'||ch==s[j][i]) g[i][ch-'a']|=1<<j-1;f[1][(1<<n)-1]=1; ans=0;for (i=1;i<=len;++i)for (j=0;j<1<<n;++j)if (f[i][j]) for (ch='a';ch<='z';++ch)f[i+1][j&g[i][ch-'a']]=(f[i+1][j&g[i][ch-'a']]+f[i][j])%mod;for (i=0;i<1<<n;++i)if (count(i)==k) ans=(ans+f[len+1][i])%mod;printf("%d\n",ans);}return 0;
}

T3

这就是传说中的神题么

暴力的想法都是有的,但是就是刚不出来(只有YZC dalao拿了2分)

标算是DP+KMP+矩阵乘法(快速幂),还是不可食用的

想要标算的同学看BZOJ1009,黄学长题解

转载于:https://www.cnblogs.com/cjjsb/p/9007644.html

EZ 2018 05 06 NOIP2018 慈溪中学集训队互测(五)相关推荐

  1. UOJ#191. 【集训队互测2016】Unknown

    UOJ#191. [集训队互测2016]Unknown 题目描述 Solution 二进制分组. 每一个组内维护一个斜率单调减的凸包. 因为有删点,避免出现反复横跳产生的爆炸复杂度,需要等到同一深度的 ...

  2. [2015国家集训队互测]口胡

    比赛链接 http://uoj.ac/contest/11 口胡题解 A.[集训队互测2015]Robot 直接果断打暴力了...这个暴力很好写,我就不废话了 B.[集训队互测2015]Marketi ...

  3. 「2019 集训队互测 Day 1」最短路径 解题报告

    一.题目概述 题目链接:Libre OJ. 给出一张图,求出 ans=∑i=1n∑j=1n[i≠j]dk(i,j)ans=\sum_{i=1}^n\sum_{j=1}^n[i\ne j]\texttt ...

  4. EZ 2018 07 06 NOIP模拟赛

    又是慈溪那边给的题目,这次终于没有像上次那样尴尬了, T1拿到了较高的暴力分,T2没写炸,然后T3写了一个优雅的暴力就203pts,Rank3了. 听说其它学校的分数普遍100+,那我们学校还不是强到 ...

  5. EZ 2018 03 23 NOIP2018 模拟赛(五)

    链接:http://211.140.156.254:2333/contest/65 这次Rating重回Rank18,我是20的守门员(滑稽) 这次题目和数据普遍偏水,我T2打错了一个变量名竟然过了所 ...

  6. EZ 2018 02 28 NOIP2018 模拟赛(二)

    我TM的终于改完了(其实都是SB题) 题目链接:http://211.140.156.254:2333/contest/53 T1送分,T2前40%送分,还有骗分机制在里面,T3暴力50 所以200应 ...

  7. 「LOJ2474」「2018 集训队互测」北校门外的未来-笛卡尔树及其扩展+LCT

    Description 链接 Solution 对于一棵树 TTT,定义其的笛卡尔树 C(T)C(T)C(T) 满足: 堆性质,即祖先的权值(本题中为标号)一定大于子孙的权值. 搜索树性质,即任意子树 ...

  8. 【集训队互测2015】最大异或和

    首先不知道有没有神仙线段树分治过的. 首先一个较为显然的性质: \[ \mathrm{Span}\{v_1, v_2, \dots, v_n\} = \mathrm{Span}\{v_1, v_2 - ...

  9. 洛谷 P4463 [集训队互测 2012] calc(拉格朗日插值优化DP)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 Weblink https://www.luogu.com.cn/problem/P4463 Prob ...

最新文章

  1. 操作系统(五)CPU调度
  2. 关于错误的那点事——惨不忍睹的错误
  3. luoguP4206 [NOI2005]聪聪与可可 期望概率DP
  4. 解决eclipse中tomcat无法识别maven web项目问题
  5. SecureCRT 用来当串口工具的设置
  6. 利用 Docker 在不同宿主机做 CentOS 系统容器 | 原力计划
  7. U-GAT-IT整体流程分析
  8. 米斯特白帽培训讲义 挖掘篇
  9. 使用OpenCV-python实现颜色特征跟踪视频中的物体
  10. mysql 5.6.14源码安装_CentOS 6.4下编译安装MySQL 5.6.14详细步骤
  11. mysql-connector-java-5.1.22下载及安装
  12. 计算机在线题库系统,试题库管理系统.doc
  13. Electron 设置透明窗口transparent 属性win7无效详解
  14. 智能交通领域权威期刊会议
  15. l2逐笔接口更新的频率是多少?
  16. python和c 情侣网名_简单情侣网名的介绍
  17. 主流量化交易与程序化交易平台整理
  18. Gis到底可以应用在哪些方面?
  19. 秋天的第一杯奶茶该买哪家?我用爬虫爬取所有数据教你买哪家
  20. redis指定配置文件启动不生效_Windows Redis默认配置文件,Redis配置不生效解决方案...

热门文章

  1. ansys用什么cpu_如何为ANSYS mechanical高性能计算选用更合理的硬件配置
  2. sklearn和tensorflow
  3. 编程小白从头学习ACM竞赛入门打卡 day 1
  4. go 二维码解析推荐gozxing
  5. 智能对话机器人发展的困惑-聊天实录
  6. HR:请问你的期望工资是多少?
  7. 建行用区块链技术帮农民工讨薪 未来三年将服务1亿农民工
  8. 收藏:Shapecollage:超好用的拼图工具
  9. 关于Vue ssr的一点探讨
  10. 2023互联网行业发展趋势前景分析