csps模拟测试57
T1 天空龙
大神题,考察多方面知识,例如:快读
附上考试代码,以供后人学习
应某迪要求,我决定多写一点。
正如文化课有知识性失分和非知识性失分一样,OI也同样存在。
但非知识性失分往往比知识性失分更惨。
140分,足以让我屈服。如果这是csps,后果不堪设想。
考后一定要检查:快读,提交语言,freopen删没删。
吸取教训,继续前进吧。
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
inline int read()
{
int x=,f=;char c=getchar();
while(c<''||c>'') {if(c='-') f=-;c=getchar();}
while(c>=''&&c<='') x=x*+c-,c=getchar();
return x*f;
}
int main()
{
int t=read();
while(t--)
{
int a=read(),b=read(),c=read(),x=read(),y=read(),z=read(),cnt=;
if(x<a&&y<b&&z<c){puts("YES");continue;}
if(x>a&&y>b&&z>c){puts("NO");continue;}
if(a>x) cnt+=(a-x)/;else cnt+=(a-x);
if(b>y) cnt+=(b-y)/;else cnt+=(b-y);
if(c>z) cnt+=(c-z)/;else cnt+=(c-z);
if(cnt>=) puts("YES");
else puts("NO");
}
return ;
}
T2 巨神兵
大神题,同样考察快读。
显然状压DP。
有向无环图有分层性,这是思考的起点
设f[i][j]表示i点集最后一层状态为j的方案数,直接转移即可,注意:上一层必须与新加的层的每个点都有连边。时间复杂度$O(4^n×m)$
考虑优化,把后面那一维去掉,这样会算重,容斥一下,奇加偶减。
#include<cstdio>
#include<cstring>
#include<iostream>
#define int long long
using namespace std;
const int mod=1e9+;
int f[<<],st[],ed[],cnt[],tot,n,m,num[<<],g[<<],t[][],bin[<<];
int p[],gt[<<][];
signed main()
{
int ans=;p[]=;
scanf("%lld%lld",&n,&m);
for(register int i=;i<=n;i++) bin[<<i-]=i;
for(register int i=;i<=m;i++) p[i]=p[i-]*%mod;
for(register int i=;i<=m;i++) scanf("%lld%lld",&st[i],&ed[i]),t[st[i]][ed[i]]++;
for(register int i=;i<<<n;i++)
for(register int j=;j<=n;j++)
gt[i][j]=gt[i^(i&-i)][j]+t[bin[i&-i]][j];
for(register int i=;i<<<n;i++) f[i]=,num[i]=num[i^(i&-i)]+;
for(register int i=;i<<<n;i++)
{
int ret=((<<n)-)^i;g[]=;
for(register int k=(ret-)&ret;k;k=(k-)&ret)
{
int st=k^ret;
g[st]=g[st^(st&-st)]*(p[gt[i][bin[st&-st]]]-)%mod;
(f[i|st]+=(num[st]&?:-)*f[i]*g[st]%mod)%=mod;
}
int st=ret;
g[st]=g[st^(st&-st)]*(p[gt[i][bin[st&-st]]]-)%mod;
(f[i|st]+=(num[st]&?:-)*f[i]*g[st]%mod)%=mod;
}
printf("%lld\n",(f[(<<n)-]%mod+mod)%mod);
return ;
}
T3 太阳神
直接反演,再发现一个小规律就好了。
#include<cstdio>
#include<iostream>
#define int long long
using namespace std;
const int N=,mod=1e9+;
short mul[N+];
char vst[N+];
int prime[+],tot;
int n,ans;
inline void pre()
{
mul[]=;
for(register int i=;i<=N;i++)
{
if(!vst[i]) prime[++tot]=i,mul[i]=-;
for(register int j=;j<=tot&&prime[j]*i<=N;j++)
{
vst[i*prime[j]]=;
if(i%prime[j]==){mul[i*prime[j]]=;break;}
mul[i*prime[j]]=-mul[i];
}
}
return ;
}
inline int gg(int x)
{
int cnt=;
for(register int i=;i*i*i<=x;i++,cnt++)
for(register int j=i+;i*j*j<x;j++)
(cnt+=*(x/i/j-j)%mod)%=mod;
for(register int i=;i*i<=x;i++)
(cnt+=*(x/i/i-(x/i/i>=i))%mod)%mod;
return cnt;
}
inline void Get()
{
for(int i=;i*i<=n;i++)
{
if(!mul[i]) continue;
(ans+=mul[i]*gg(n/i/i)%mod)%=mod;
}
}
signed main()
{
scanf("%lld",&n);
pre();Get();
cout<<(((n%mod*(n%mod))%mod-ans)%mod+mod)%mod<<endl;
return ;
}
csps模拟测试57的更多相关文章
- csp-s模拟测试57(10.2)「天空龙」·「巨神兵」·「太阳神」
题目是古埃及神话??? A. 天空龙 傻逼模拟,看来没有滑天下之大稽QAQ,也没有打错快读(大雾...) B. 巨神兵 难度爆增,一脸懵比..... 60分状压: 因为是求有向图,关于有向图好像拓扑用 ...
- CSP-S 模拟测试57题解
人生第一次A,B层一块考rank2,虽然说分差没几分,但还是值得纪念. 题解: T1 天空龙: 大神题,因为我从不写快读也没有写考场注释的习惯,所以不会做,全hzoi就kx会做,kx真大神级人物. T ...
- csp-s模拟测试91
csp-s模拟测试91 倒悬吃屎的一套题. $T1$认真(?)分析题意发现复杂度不能带$n$(?),计划直接维护答案,考虑操作对答案的影响,未果.突然发现可以动态开点权值线段树打部分分,后来$Tm$一 ...
- csp-s模拟测试86
csp-s模拟测试86 分屋前的最后一次考试,我早就放弃了自己. 02:02:46 70 02:02:57 03:16:08 100 03:16:08 $T1$忘了按位计算,达哥按位计算的$T1$当时 ...
- csp-s模拟测试99
csp-s模拟测试99 九九归一直接爆炸. $T1$一眼板子. $T2$一眼语文题(语文的唯一一次$120+$是给模拟出来的可知我的语文能力). $T3$一眼普及题. ?? Hours Later 板 ...
- csp-s模拟测试98
csp-s模拟测试98 $T1$??不是我吹我轻松手玩20*20.$T2$装鸭好像挺可做?$T3$性质数据挺多提示很明显? $One$ $Hour$ $Later$ 这$T1$什么傻逼题真$jb$难调 ...
- csp-s模拟测试97
csp-s模拟测试97 猿型毕露.水题一眼秒,火题切不动,还是太菜了. $T1$看了一会儿感觉$woc$期望题$T1??$假的吧??. $T2$秒. $T3$什么玩意儿. 40 01:24:46 00 ...
- csp-s模拟测试96
csp-s模拟测试96 $T1$一眼慢速乘,$T2$稍证一手最优性尝试用神奇数据结构优化,无果,弃.$T3$暴力+信仰. 100 03:16:38 95 03:16:56 35 03:17:10 23 ...
- csp-s模拟测试95
csp-s模拟测试95 去世场祭. $T1$:这不裸的除法分块吗. $T2$:这不裸的数据结构优化$Dp$吗. $T3$:这不裸的我什么都不会搜索骗$30$分吗. 几分钟后. 这除法分块太劲了..(你 ...
随机推荐
- 虚拟机安装Centos7系统后优化操作
重点说明 以下操作针对于VMware软件上新创建的Centos7的虚拟机的优化,当需要多台虚拟机的实验环境时,可通过以下需求先操作配置出一台优化机(也可称为模板机),并创建快照记录,以后的多台虚拟机环 ...
- ant path匹配原则
ant path匹配原则 又称路径匹配原则,spring中的相关策略类org.springframework.util.AntPathMatcher 路径模式使用了apache ant的路径样式 ap ...
- vue路由跳转的方式
vue路由跳转有四种方式 1. router-link 2. this.$router.push() (函数里面调用) 3. this.$router.replace() (用法同push) 4. t ...
- linux分区与挂载
分区是将一个硬盘驱动器分成若干个逻辑驱动器,分区是把硬盘连续的区块当做一个独立的磁盘使用.分区表是一个硬盘分区的索引,分区的信息都会写进分区表.通常情况下,为磁盘分区通常使用fdisk,它是对基于MB ...
- 计算几何基础算法几何C++实现
This file is implementation of Common Common Computational Geometry Algorithms.Please please pay att ...
- 阿里云 RDS 数据库又发 CPU 近 100% 的“芯脏病”
最近云界发生了2件事,一件是大事,一件是小事,大事是阿里云与微软合作推出了开放应用模型 Open Application Model(OAM),小事是由于微软 SQL Server 在阿里云上水土不服 ...
- .NET Core 3.0 ,WTM 2.3.9发布
.Net Core 3.0已经来了,WTM怎么可以落后呢.最新发布的WTM2.3.9版本已经支持.Net Core 3.0啦,现在在线生成项目的时候可以选择2.2和3.0两个版本.小伙伴们快来体验吧. ...
- 通过反射对任意class类中方法赋值的方式
import org.apache.commons.lang3.StringUtils;import org.slf4j.Logger;import org.slf4j.LoggerFactory;i ...
- VPS虚拟专用服务器
目录 0x00 VPS服务器概述 0x01 VPS工作原理 0x02 VPS用途 0x03 VPS优势 0x04 VPS特点 0x00 VPS服务器概述 VPS服务器(虚拟专用服务器)(" ...
- Web前端安全之iframe
防嵌套网页 比如,最出名的clickhacking就是使用iframe来 拦截click事件.因为iframe享有着click的最优先权,当有人在伪造的主页中进行点击的话,如果点在iframe上,则会 ...