CF1173C

由于牌堆只能从最后插牌,所以插牌方法非常显然

首先特判一下牌堆有没有一个合法的后缀,如果有的话再判断一下手中的牌和合法后缀之前的牌的排列顺序能不能有效的继续续下去

然后排除了以上情况就可以直接找\(max(i-b_i)\)就是最早在哪个时刻开始往里按顺序加牌构造递增序列

#include<iostream>
#include<cstdio> using namespace std; int w,n,m,k,a[1000001],b[1000001],c[300001]; int main()
{
scanf("%d",&n);
for(int i=1;i<=n;i++) scanf("%d",&b[i]);
for(int i=1;i<=n;i++) scanf("%d",&a[i]), c[a[i]]=i;
int B=0;
k=n;
while(k && a[k-1]==a[k]-1) k--;
if(a[k]==1 || a[k]==0) B=1;
if(a[n]==0) B=1;
if(B)
{
for(int i=1;i<k;i++)
if(a[i] && i-a[i]+a[n]+1>0) B=0;
if(B)
{
printf("%d",n-a[n]);
return 0;
} }
B=0;
for(int i=1;i<=n;i++) if(a[i])B=max(B,i-a[i]+1);
printf("%d",B+n);
}

CF1173D

边不交叉的条件是每棵子树都要在一段连续的位置

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define LL long long
using namespace std;
const int M = 1000001;
const int P = 998244353; int x,y,n,m,k, ver[M], nex[M], edge[M],cnt,A[M],head[M]; void add(int x,int y)
{
ver[++cnt]=y, nex[cnt]=head[x], head[x]=cnt;
ver[++cnt]=x, nex[cnt]=head[y], head[y]=cnt;
} int dfs(int x,int fa)
{
int s=1, d=1;
for(int i=head[x];i;i=nex[i])
{
if(ver[i]==fa) continue;
d=(LL)d*dfs(ver[i],x)%P;
s++;
}
if(x!=1)return (LL)A[s]*d%P;
return (LL)A[s-1]*d%P; } int main()
{
scanf("%d",&n);
for(int i=1;i<n;i++)
{
scanf("%d%d",&x,&y);
add(x,y);
}
A[0]=1;
for(int i=1;i<=n;i++) A[i]=(LL)A[i-1]*i%P;
printf("%d",(LL)n*dfs(1,0)%P);
}

CF1173X的更多相关文章

随机推荐

  1. java并发编程之美-阅读记录5

    java并发包中的并发List 5.1CopeOnWriteArrayList 并发包中的并发List只有CopyOnWriteArrayList,该类是一个线程安全的arraylist,对其进行的修 ...

  2. PHP导出带有emoji表情的文本到excel文件出问题了

    前段时间做了一个导出用户信息(包含微信昵称)到excel文件的功能,一直没问题,今天突然有人反馈说导出来的数据有一些丢失了.我试了一下,发现有些数据导出没问题,有些有问题,某些列出现了空白,数据打印出 ...

  3. SpringMVC学习(11):表单标签

    本篇我们来学习Spring MVC表单标签的使用,借助于Spring MVC提供的表单标签可以让我们在视图上展示WebModel中的数据更加轻松. 一.首先我们先做一个简单了例子来对Spring MV ...

  4. phpredis中incr以及decr等自增命令出现的问题

    在做项目中使用redis的incr以及hincrby自增时,出现自增失败,set之后的数据,无法自增,当redis中不存在该key时,直接用incr是成功的.查找了原因,是因为phpredis初始化的 ...

  5. ANSI-2

    一.ANSI编码 1. 如前所述,在全世界所有国家和地区的文字符号统一编码的UCS/Unicode编码方案问世之前(UCS.Unicode后文有详细介绍),各个国家.地区为了用计算机记录并显示自己的字 ...

  6. A new session could not be created. (Original error: Could not find a connected Android device.)

    1 终端执行adb   devices 查看知否看到设备 1 查看手机 的开发者 usb调试功能是否打卡 2 重启电脑,cmd 执行  adb devices  重新打开

  7. DB2数据库常用的函数总结

    CONCAT>>-CONCAT-------(--expression1--,--expression2--)--------------><功能:将两个字符串连接起来,如果两 ...

  8. c++后台开发面试常见知识点总结(六)算法手写

    链表倒转  leetcode-206 连续子数组最大和问题(和最大的连续子序列的和)   leetcode-53 输出字符串中最长的回文子串长度?  leetcode-5 一个字符串,求最长无重复子串 ...

  9. 职责链模式ChainOfResponsibility

    原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11407114.html  1.定义 使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合 ...

  10. 【记录】Java NIO实现网络模块遇到的BUG

    1.背景 通过JavaNio实现一个简单的网络模块,有点像Netty的线程模型,一个线程(AcceptThread)建立新连接,把新连接绑定到某个SelectorThread,SelectorThre ...