综述

试题为常州集训2019SCDay2

得分\(100+30(0)+28\)


时之终结

问题描述

HZOJ1310

题解

构造题。

发现部分分有一档是 \(Y\) 是 \(2^x\) ,于是自然想到很多个三角形连到一起。

然后正解就是在这个基础上删边。

\(\mathrm{Code}\)

#include<bits/stdc++.h>
using namespace std; #define int long long template <typename Tp>
void read(Tp &x){
x=0;char ch=1;int fh;
while(ch!='-'&&(ch>'9'||ch<'0')) ch=getchar();
if(ch=='-') ch=getchar(),fh=-1;
else fh=1;
while(ch>='0'&&ch<='9') x=(x<<1)+(x<<3)+ch-'0',ch=getchar();
x*=fh;
} int y,opt=2;
bool eps[1007]; bool deal(){
int bf=y,cnt=0;
while(1){
if(bf&1) return (bf==1);
++cnt;bf>>=1;++opt;
}
return 0;
} namespace Subtask_2{
void solve(){
printf("%lld %lld\n",opt,opt*(opt-1)/2);
for(int i=1;i<opt;i++){
for(int j=i+1;j<=opt;j++) printf("%lld %lld\n",i,j);
}
}
} namespace Subtask_3{
void solve(){
int bf=y;opt=2;int tmp=1;
while(bf){
eps[opt]=(bf&1);bf>>=1;
tmp+=(eps[opt]==0);++opt;
}
printf("%lld %lld\n",opt,opt*(opt-1)/2-tmp);
for(int i=1;i<opt;i++){
for(int j=i+1;j<=opt;j++){
if(j==opt&&!eps[i]) continue;
printf("%lld %lld\n",i,j);
}
}
}
} signed main(){
freopen("review.in","r",stdin);freopen("review.out","w",stdout);
read(y);
if(y==1){
puts("2 1");puts("1 2");
fclose(stdin);fclose(stdout);
return 0;
}
if(y==2){
puts("3 3");puts("1 2");puts("2 3");puts("1 3");
fclose(stdin);fclose(stdout);
return 0;
// 3 3 1 2 2 3 1 3
}
if(deal()) Subtask_2::solve();
else Subtask_3::solve();
return 0;
}

博士之时

问题描述

HZOJ1311

题解

想象它是肽链和肽环

正难则反

链只能倒过来,环随便转

注意长度相同的链、长度相同的环可以互换。

\(\mathrm{Code}\)

#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int N=2e5+10;
const int M=5e5+10;
const int mod=1e9+7;
int Num,n,m1,m2,A,B,head[N],cnt,n0,n1,n2,n3,f[N][2],opt,g[N],fac[N],ans,num,tot,bin[N];bool d[N],w[N],vis[N],pd;//f链,g环
bool cc[20][20],dd[20][20];
struct edge{int nxt,to;}ed[M<<1];
inline void addedge(int x,int y){
ed[++cnt].to=y;ed[cnt].nxt=head[x];head[x]=cnt;
ed[++cnt].to=x;ed[cnt].nxt=head[y];head[y]=cnt;}
inline void Add(int &x,int y){x+=y;x-=x>=mod? mod:0;}
inline int MOD(int x){x-=x>=mod? mod:0;return x;}
inline int Minus(int x){x+=x<0? mod:0;return x;}
inline int fas(int x,int p){int res=1;while(p){if(p&1)res=1ll*res*x%mod;p>>=1;x=1ll*x*x%mod;}return res;}
inline void DFS(int u){
vis[u]=true;num++;int record=0;
for(register int i=head[u];i;i=ed[i].nxt){
int v=ed[i].to;if(vis[v]){record++;continue;}
DFS(v);
}
if(!ed[head[u]].nxt)opt=w[u];
if(record==2)pd=true;
}
int main(){
freopen("refrain.in","r",stdin);
freopen("refrain.out","w",stdout);
scanf("%d",&Num);
scanf("%d%d%d",&n,&m1,&m2);
for(register int i=1;i<=m1;i++){
scanf("%d%d",&A,&B);
d[A]=true;d[B]=true;addedge(A,B);
}
for(register int i=1;i<=m2;i++){
scanf("%d%d",&A,&B);
w[A]=true;w[B]=true;addedge(A,B);
}
fac[0]=1;for(register int i=1;i<=n;i++)fac[i]=1ll*fac[i-1]*i%mod;
bin[0]=1;for(register int i=1;i<=n;i++)bin[i]=2ll*bin[i-1]%mod;
ans=fac[n];
for(register int i=1;i<=n;i++)
if(!vis[i]){
num=0;pd=false;DFS(i);
if(num==1)n0++;
else if(num==2){if(d[i]&&w[i])n3++;else if(d[i])n1++;else n2++;}
else if(pd)g[num]++;else f[num][opt]++;
}
tot=fac[n0];
tot=1ll*tot*fac[n1]%mod*bin[n1]%mod;
tot=1ll*tot*fac[n2]%mod*bin[n2]%mod;
tot=1ll*tot*fac[n3]%mod*bin[n3]%mod;
for(register int i=3;i<=n;i++)
if(i&1)tot=1ll*tot*fac[f[i][0]+f[i][1]]%mod;
else tot=1ll*tot*fac[f[i][0]]%mod*bin[f[i][0]]%mod*fac[f[i][1]]%mod*bin[f[i][1]]%mod;
for(register int i=4;i<=n;i+=2)
tot=1ll*tot*fac[g[i]]%mod*fas(i,g[i])%mod;
ans=Minus(ans-tot);
printf("%d\n",ans);
return 0;
}

曾有两次

问题描述

HZOJ1312

题解

不会

20191003 「HZOJ NOIP2019 Round #8」20191003模拟的更多相关文章

  1. 20191004 「HZOJ NOIP2019 Round #9」20191004模拟

    综述 第一次 rk1 ,激动. 题目是 COCI 18/19 Round #1 的三至五题. 得分 \(100+100+20\) \(\mathrm{cipele}\) 问题描述 HZOJ1313 题 ...

  2. 20191102 「HZOJ NOIP2019 Round #12」20191102模拟

    先开坑. md原题写挂我也真是... 100+20+10 白夜 打表大法吼 显然,不在环上的点对答案的贡献是 \((k-cycle)^{k-1}\) . 打表得到环上的递推式,矩阵一下乘起来就好了. ...

  3. 20190922 「HZOJ NOIP2019 Round #7」20190922模拟

    综述 这次是USACO2019JAN Gold的题目. \(\mathrm{Cow Poetry}\) 题解 因为每句诗的长度一定是\(k\),所以自然而然想到背包. 设\(opt[i][j]\)代表 ...

  4. 「LibreOJ NOI Round #2」不等关系

    「LibreOJ NOI Round #2」不等关系 解题思路 令 \(F(k)\) 为恰好有 \(k\) 个大于号不满足的答案,\(G(k)\) 表示钦点了 \(k\) 个大于号不满足,剩下随便填的 ...

  5. LibreOJ #507. 「LibreOJ NOI Round #1」接竹竿

    二次联通门 : LibreOJ #507. 「LibreOJ NOI Round #1」接竹竿 /* LibreOJ #507. 「LibreOJ NOI Round #1」接竹竿 dp 记录一下前驱 ...

  6. 「LibreOJ NOIP Round #1」旅游路线

    Description T 城是一个旅游城市,具有 nnn 个景点和 mmm 条道路,所有景点编号为 1,2,...,n1,2,...,n1,2,...,n.每条道路连接这 nnn 个景区中的某两个景 ...

  7. 「LibreOJ NOI Round #1」验题

    麻烦的动态DP写了2天 简化题意:给树,求比给定独立集字典序大k的独立集是哪一个 主要思路: k排名都是类似二分的按位确定过程. 字典序比较本质是LCP下一位,故枚举LCP,看多出来了多少个独立集,然 ...

  8. #509. 「LibreOJ NOI Round #1」动态几何问题

    下面给出部分分做法和满分做法 有一些奇妙的方法可以拿到同样多的分数,本蒟蒻只能介绍几种常见的做法 如果您想拿18分左右,需要了解:质因数分解 如果您想拿30分左右,需要了解:一种较快的筛法 如果您想拿 ...

  9. LibreOJ #539. 「LibreOJ NOIP Round #1」旅游路线(倍增+二分)

    哎一开始看错题了啊T T...最近状态一直不对...最近很多傻逼题都不会写了T T 考虑距离较大肯定不能塞进状态...钱数<=n^2能够承受, 油量再塞就不行了...显然可以预处理出点i到j走c ...

随机推荐

  1. 压缩20M文件从30秒到1秒的优化过程

    文章来源公众号:IT牧场 有一个需求需要将前端传过来的10张照片,然后后端进行处理以后压缩成一个压缩包通过网络流传输出去.之前没有接触过用Java压缩文件的,所以就直接上网找了一个例子改了一下用了,改 ...

  2. Eureka配置

    介绍 SpringCloud是一个完整的微服务治理框架,包括服务发现和注册,服务网关,熔断,限流,负载均衡和链路跟踪等组件. SpringCloud-Eureka主要提供服务注册和发现功能.本文提供了 ...

  3. ADO.NET中的5个主要对象

    1.Connection:主要是开启程序和数据库之间的连接.没有利用连接对象将数据库打开,是无法从数据库中取得数据的. Close和Dispose的区别,Close以后还可以Open,Dispose以 ...

  4. jmeter实操及性能测试基础知识整理 - 不断更新

    主要基于jmetet工具 有任何疑问直接留言,可以相互讨论 线程组菜单: 线程数:并发数量Rame-Up时间(秒):多久跑完线程数,比如线程是10,Rame-Up时间是10秒,就是10秒内跑完10个线 ...

  5. 续~ES6 新语法 (symbol、set集合、 数组对象的filter(),reduce(),weakset(),map()方法)

    一.symbol 回顾数据类型: 基本类型(原始类型): String Number Boolean Undifined Null Symbol 引用类型: Objects 1.1 创建symbol ...

  6. 在Angular4中使用ng2-baidu-map详解

    一.引言 之前在Angular4使用过百度地图,记录一下踩过的坑 二.实现 1.安装 npm install angular2-baidu-map 2.在app.module.ts配置 ak key在 ...

  7. maven 学习---Maven 编译打包时如何忽略测试用例

    本文地址:http://blog.csdn.net/wirelessqa/article/details/14057305 跳过测试阶段: mvn package -DskipTests 临时性跳过测 ...

  8. Android中设置状态栏颜色和字体颜色

    1.在这里设置的状态栏背景为白色,字体为暗色 创建一个方法进行设置: protected void setStatusBar() { if (Build.VERSION.SDK_INT >= B ...

  9. kafka-python开发kafka生产者和消费者

    1.安装kafka-python 执行命令 pip install kafka-python kafka-python        1.4.6 2.编写python kafka 生产者消费者代码 # ...

  10. python 之Lambda表达式

    python 的 lambda 表达式 python写一些执行脚本时,使用lambda就可以省下定义函数的过程,比如说我们只是需要写个简单的脚本来管理服务器时,我们就不用专门定义函数然后再写调用,使用 ...