[考试反思]0928csp-s模拟测试54:转瞬
咕了好久,也没什么想说的。
下一场就又爆炸了。。。
T3特判打丢一句话丢了14分,剩下其实都还好。
T1:x
给我的第一感觉是建图找联通块,但既然只要找联通块为什么不直接并查集呢?
对于每一个数字合并它的所有因子,求出现过的因子形成几个联通块,特殊处理1。
二营长比我快了整整5分钟做出来的。
#include<cstdio>
#include<vector>
using namespace std;
#define mod 1000000007
#define int long long
vector<int>v[];
int x[],al[],f[],prime[],cnt_prime;bool not_prime[];
int pow(int b,int t,int a=){for(;t;t>>=,b=b*b%mod)if(t&)a=a*b%mod;return a;}
int find(int k){return f[k]==k?k:f[k]=find(f[k]);}
main(){
int t;scanf("%lld",&t);
for(int i=;i<=;++i)if(!not_prime[i]){
prime[++cnt_prime]=i;
for(int j=i;j<=;j+=i)v[j].push_back(i),not_prime[j]=;
}
while(t--){
int n,cnt1=;scanf("%lld",&n);
for(int i=;i<=n;++i){scanf("%lld",&x[i]);if(x[i]==)cnt1++;}
for(int i=;i<=cnt_prime;++i)f[prime[i]]=prime[i],al[prime[i]]=;
for(int i=;i<=n;++i)if(x[i]!=)for(int j=;j<v[x[i]].size();++j)
f[find(v[x[i]][j])]=find(v[x[i]][]),al[v[x[i]][j]]=;//,printf("%lld %lld\n",v[x[i]][0],v[x[i]][j]);
for(int i=;i<=n;++i)if(x[i]!=)al[v[x[i]][]]=;
for(int i=;i<=cnt_prime;++i)if(al[prime[i]])if(al[find(prime[i])]!=)
al[find(prime[i])]=,cnt1++;
printf("%lld\n",(pow(,cnt1)-+mod)%mod);
}
}
思路积累:
- 埃筛:求出含有的每种质因子
- 并查集
T2:y
莫名想到了双向搜索,因为20的范围会很卡但是折半之后就很好,然后就好做了。
可以发现我们要求的路径不限制终点。
那么分别处理以1为起点所能形成的长度为d/2的路径集合和以任意点为起点的路径集合。
然后把两种路径的终点接起来就形成了长度为d的路径。
比脸快23s抢到迷之首杀。
#include<cstdio>
int can[][][],n,fir[],l[],to[],v[],cnt,m,d,rev[],ans,can2[][][],al[];
void link(int a,int b,int V){l[++cnt]=fir[a];fir[a]=cnt;to[cnt]=b;v[cnt]=V;}
int main(){
scanf("%d%d%d",&n,&m,&d);
for(int i=,a,b,V;i<=m;++i)scanf("%d%d%d",&a,&b,&V),link(a,b,V),link(b,a,V);
int lh=d>>,rh=d-lh,usf=(<<rh)-;
can[][][]=;for(int i=;i<=n;++i)can2[][i][]=;
for(int len=,L=;len<lh;++len,++L)for(int i=;i<=n;++i)for(int st=;st<<<len;++st)if(can[len][i][st])
for(int j=fir[i];j;j=l[j])can[L][to[j]][st<<|v[j]]=;
for(int len=,L=;len<rh;++len,++L)for(int i=;i<=n;++i)for(int st=;st<<<len;++st)if(can2[len][i][st])
for(int j=fir[i];j;j=l[j])can2[L][to[j]][st<<|v[j]]=;
for(int i=;i<<<lh;++i)for(int j=;j<=n;++j)if(can[lh][j][i])
for(int k=;k<=usf;++k)if(!al[i<<rh|k]&&can2[rh][j][k])al[i<<rh|k]=,ans++;
printf("%d\n",ans);
}
思路积累:
- 双向搜索:状态数开根
T3:z
31分给暴力了。
+14分单调:只要处理第一个和最后一个就行。x[2]=x[n],n=2;然而考场上没写n=2,T掉了。。。
+20分曲折:二分最早的不能覆盖的段然后就是一次函数。
100分:大模拟。考场上有链表+堆的思路。感觉很不好打就没有打。
事实上的确很不好打,现在还没有A。
思路和下发的std不太一样。
[考试反思]0928csp-s模拟测试54:转瞬的更多相关文章
- [考试反思]0718 NOIP模拟测试5
最后一个是我...rank#11 rank#1和rank#2被外校大佬包揽了. 啊...考的太烂说话底气不足... 我考场上在干些什么啊!!! 20分钟“切”掉T2,又27分钟“切”掉T1 切什么切, ...
- 2019.9.28 csp-s模拟测试54 反思总结
咕咕咕的冲动如此强烈x T1x: 看完题目想了想,感觉把gcd不为1的强行放在一组,看作一个连通块,最后考虑连通块之间的组合方式就可以了. 然后维护这个连通块可以写并查集可以连边跑dfs怎么着都行… ...
- 9.28 csp-s模拟测试54 x+y+z
T1 x 求出每个数的质因数,并查集维护因子相同的数,最后看一共有多少个联通块,$ans=2^{cnt}-2$ 但是直接分解会$T$,埃筛是个很好的选择,或者利用每个数最多只会有1个大于$\sqrt{ ...
- [考试反思]0814NOIP模拟测试21
前两名是外校的240.220.kx和skyh拿到了190的[暴力打满]的好成绩. 我第5是170分,然而160分就是第19了. 在前一晚上刚刚爆炸完毕后,心态格外平稳. 想想前一天晚上的挣扎: 啊啊啊 ...
- [考试反思]1109csp-s模拟测试106:撞词
(撞哈希了用了模拟测试28的词,所以这次就叫撞词吧) 蓝色的0... 蓝色的0... 都该联赛了还能CE呢... 考试结束前15分钟左右,期望得分300 然后对拍发现T2伪了写了一个能拿90分的垃圾随 ...
- [考试反思]0909csp-s模拟测试41:反典
说在前面:我是反面典型!!!不要学我!!! 说在前面:向rank1某脸学习,不管是什么题都在考试反思后面稍微写一下题解. 这次是真的真的运气好... 这次知识点上还可以,但是答题策略出了问题... 幸 ...
- [考试反思]0729NOIP模拟测试10
安度因:哇哦. 安度因:谢谢你. 第三个rank1不知为什么就来了.迷之二连?也不知道哪里来的rp 连续两次考试数学都占了比较大的比重,所以我非常幸运的得以发挥我的优势(也许是优势吧,反正数学里基本没 ...
- [考试反思]0714/0716,NOIP模拟测试3/4
这几天时间比较紧啊(其实只是我效率有点低我在考虑要不要坐到后面去吹空调) 但是不管怎么说,考试反思还是要写的吧. 第三次考试反思没写总感觉缺了点什么,但是题都刷不完... 一进图论看他们刷题好快啊为什 ...
- [考试反思]1003csp-s模拟测试58:沉淀
稳住阵脚. 还可以. 至少想拿到的分都拿到了,最后一题的确因为不会按秩合并和线段树分治而想不出来. 对拍了,暴力都拍了.挺稳的. 但是其实也有波折,险些被卡内存. 如果内存使用不连续或申请的内存全部使 ...
随机推荐
- [Note] GNUstep on Windows
1.下载与安装 www.gnustep.org/windows/installer.html 下载 GNUstep MSYS System GNUstep Core GNUstep Devel 并安装 ...
- Flume 学习笔记之 Flume NG+Kafka整合
Flume NG集群+Kafka集群整合: 修改Flume配置文件(flume-kafka-server.conf),让Sink连上Kafka hadoop1: #set Agent name a1. ...
- IT爱心求助站
最近发生的一些事情,让我对自己的专业有了另外一层认识. 小尹同学,你是做软件的是吗?能否帮我看一下我的电脑问题? 老同学,我的电脑安装一个软件这么都装不上,能否帮我看一下呢? 邻居你好,我的手机怎么没 ...
- windows系统安全日志取证工具
0x01 关于日志 Windows安全事件日志中详细记录了是谁在什么时候通过什么手段登录到系统或者注销了登录,通过分析该日志可以详细了解服务器的安全情况以及必要时的取证工作. 0x02 查看日志 传统 ...
- shark恒破解笔记4-API断点GetPrivateProfileStringA
这小节是通过断在GetPrivateProfileStringA,然后找到注册码的. 1.运行程序输入假码111111,提示重启.通过这判断这是一个重启来验证的,那么它是如何来验证的呢?观察程序目录下 ...
- Unity 场景中看不到物体或者OnDrawGizmos画的线看不到
有时候,Unity中的场景里面,物体突然看不见了,可以这样做: 首先,在 Hierarchy 面板选择看不见的物体,按下快捷键 f.如果物体还是看不见,见下图: 看看图中圈红的地方.如果,如果 ...
- JBOSS中间件漏洞总汇复现
JBOSS中间件漏洞总汇复现 JBoss JMXInvokerServlet 反序列化漏洞 漏洞复现 直接使用docker搭建的漏洞环境. 环境搭建完成后,直接使用工具检测即可:工具下载地址https ...
- JetBrains系列软件激活码
T3ACKYHDVF-eyJsaWNlbnNlSWQiOiJUM0FDS1lIRFZGIiwibGljZW5zZWVOYW1lIjoi5bCP6bifIOeoi+W6j+WRmCIsImFzc2lnb ...
- chrome devtools tip(2)--自定义代码片段,构建你的工具箱
平常开发中,有些代码片段常常用到的,比如,获取 url 参数,rgb转16进制,打印下当前页面的性能数据,给所有的 span 加个样式, 防抖节流,fetch接口,类似 jquery这样的顺手 选择 ...
- 使用Redis在Hibernate中进行缓存
Hibernate是Java编程语言的开放源代码,对象/关系映射框架.Hibernate的目标是帮助开发人员摆脱许多繁琐的手动数据处理任务.Hibernate能够在Java类和数据库表之间以及Java ...