[考试反思]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:沉淀
稳住阵脚. 还可以. 至少想拿到的分都拿到了,最后一题的确因为不会按秩合并和线段树分治而想不出来. 对拍了,暴力都拍了.挺稳的. 但是其实也有波折,险些被卡内存. 如果内存使用不连续或申请的内存全部使 ...
随机推荐
- Java 学习笔记之 Sleep停止线程
Sleep停止线程: 在Sleep状态下被interrupt,interrupted 状态会被擦除,返回false. 线程在Sleep状态下被interrupt: public class Sleep ...
- Windows10 1903错误0xc0000135解决方案
Windows10 1903错误0xc0000135解决方案 === windows10 1903是2019年Mircosoft推出的最新版windows操作系统,但是有很多机器装上之后会存在不支持. ...
- 你所不知道的TIME_WAIT和CLOSE_WAIT
你遇到过TIME_WAIT的问题吗? 我相信很多都遇到过这个问题.一旦有用户在喊:网络变慢了.第一件事情就是,netstat -a | grep TIME_WAIT | wc -l 一下.哎呀妈呀,几 ...
- TensorFlow2.0(六):Dataset
.caret, .dropup > .btn > .caret { border-top-color: #000 !important; } .label { border: 1px so ...
- 检测 IP的正则表达式
... /*ip正则表达式*/ /^((?:(?:25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(?:25[0-5]|2[0-4]\d|((1\d{2})| ...
- Maven插件构建Docker镜像
背景 微服务架构下,微服务在带来良好的设计和架构理念的同时,也带来了运维上的额外复杂性,尤其是在服务部署和服务监控上.单体应用是集中式的,就一个单体跑在一起,部署和管理的时候非常简单,而微服务是一个网 ...
- mysql的十二条基本语句
在 mysql里,所有语句都以分号作为结束标志! 1.连接服务器 Mysql -u username -p passwd 2.当连上服务器后,首先面对的是库,库有1个或多个,因此我们想对表进行操作的话 ...
- Cohen-Sutherland算法
Cohen-Sutherland算法 本算法又称为编码裁剪算法,算法的基本思想是对每 条直线段分三种情况处理: (1)若点p1和p 2完全在裁剪窗口内 “简取”之 (2)若点p1(x1,y1)和p2( ...
- Mac部署hadoop3(伪分布式)
环境信息 操作系统:macOS Mojave 10.14.6 JDK:1.8.0_211 (安装位置:/Library/Java/JavaVirtualMachines/jdk1.8.0_211.jd ...
- 记个mimikatz小坑
今晚回学校无聊搞搞自己school 实战的时候遇到mimikatz抓密码报错 以前没遇过 记一下(水一篇) 爆ERROR kuhl_m_privilege_simple ; RtlAdjustPr ...