2020/4/29 一场令人头疼的cf。。。
今天是被安排的cf。。。
我真的是太菜了啊。。。又双叒叕被机房的一群dalao吊打了。。。

这就是我与6年级的dalao的区别吗。。。
我裂开了
简单题。
就是把移动距离加起来就好了。。。
我居然能写错。。。真的是应该去开一道猪国杀写写。。。锻炼锻炼码力。。。
唉
T2:B - Composite Coloring
还是大水题。。。
可以发现。。。sqrt(100)是没有上34的。。。
没有上34的质数只有11个。。。
m<=11不就是最大的提示吗。。。
那就只要找一下质数,枚举每个数是否是他的倍数就好了啊。。。
我tm又卡了30分钟。。。淦,我裂开来
T3。。。C - K-Complete Word
我太难了
就是个极其明显的贪心。。
把每一位上的字符统计一下,选最多的就好了。。。
wtm没算是回文串。。。得到了比样例更优的解法。。。
直接原地爆炸。。。连调代码的希望都没了。。。
大水题。。。
直接构造一个2*3的矩阵就好了。。。
这就是通解。。。
他的代码不是dp,就是个贪心。。。
T5:
E - Height All the Same
这个要好好讲讲了。
题目大意就是
这个并没有那么好想。。。主要是我数学非常的不好。。。
其实对于数学学得好的人就是个大水题。
先来分析一下这道题目2种操作真正的含义
相邻的元素+1:使奇偶性变换,如(1,2)->(2,3),(奇,偶)->(偶,奇)
一个元素自己+2:奇偶性不变,仅仅是在填充。
为什么会想到奇偶性呢?
其实,+2与+1的题目,有很大的可能是有关于奇偶性的。只需要多写几道类似的题目就会有感觉了。
还有一个很必要的地方,就是这种操作无论怎么进行都不会影响到他的总和的奇偶性。
首先,我们用Even(E)来表示其中的偶数的个数,Odd(O)来表示其中奇数的个数。
接下来开始分类讨论
1.如果,n*m为奇数
这样分的原因是因为这种情况是一定有解的。
因为这意味着要么是E%2==0,要么是O%2==0
都是偶数个了,那么通过+1一定是能使他们全部变为一种情况的。
说明这一定有解。
2.如果,n*m为偶数
设最终堆叠了h层。
那么对于最终的答案,就是
所以我们只需要保证这个为偶数,就可以保证最终答案的有解了。
为什么保证nmh%2==0就可以保证最终答案的有解了呢?
因为最终为偶数,就说明有偶数个O。
这就非常显然了。
那么,答案是什么呢?
设2i为奇数的位置数

这就是答案。
从没有奇数到每个位置都有奇数
为求每个状态中每个位置为奇数的情况。
O2iEnm-2i指的是每个位置对答案的贡献。
这些加起来就是答案了。
可是,这是一个暴力。。。
TLE稳稳的。
我们就需要对他进行化简,这样是我们列出这个式子真正的目的:优化。
看到这个就应该联想到二项式定理
是不是非常的相似呢?
发现(O+E)nm的值就是
将奇数项与偶数项拉出来,得到
发现左边就是我们需要的答案。
右边这个式子怎么消掉呢?
把它在加上一个(O-E)nm就好了。(O-E)nm分解出来的式子其中一个正好消掉了。
再除以2就是我们需要的答案了。
所以!答案就是
这种乘法直接使用快速幂就能够快速求解了
#include<bits/stdc++.h>
#define MOD 998244353
#define ll long long
using namespace std;
ll T,n,m,l,r;
inline ll read()
{
char c=getchar();ll a=0,b=1;
for(;c<'0'||c>'9';c=getchar())if(c=='-')b=-1;
for(;c>='0'&&c<='9';c=getchar())a=a*10+c-48;
return a*b;
}
ll qpow(ll a,ll p)
{
ll res=1;
if(a==0)return 0;
while(p)
{
if(p&1)res=res*a%MOD;
a=a*a%MOD;
p>>=1;
}
return res;
}
int main()
{
n=read();m=read();l=read();r=read();
if(n*m&1) cout<<qpow((r-l+1)%MOD,n*m%(MOD-1))<<endl;
else
{
ll E=(r>>1)-(l-1>>1);
ll O=r-l+1-E;
cout<<((qpow((O+E)%MOD,n*m%(MOD-1))+qpow((O-E+MOD)%MOD,n*m%(MOD-1)))*499122177%MOD)<<endl;
}
return 0;
}
ok
这是dp。。。
只是状态有那么的一丁点难想。。。

淦啊,我看不懂题面。。。
不写了。。

//Data
const int N=300000,m=998244353;
int n;
vector<lng> f[3];
vector<vector<int> > e; //Dfs
il void Dfs(re int x,re int fa){
f[0][x]=f[1][x]=f[2][x]=1;
for(re int to:e[x])if(to!=fa){
Dfs(to,x);
(f[0][x]*=f[0][to])%=m;
(f[1][x]*=(f[0][to]+f[1][to]+f[2][to]))%=m;
(f[2][x]*=(f[0][to]+f[1][to]))%=m;
}
f[0][x]=(f[1][x]+f[2][x]-f[0][x]+m)%m;
} //Main
int main(){
scanf("%d",&n);
e.resize(n+7);
for(re int i=0;i<3;i++) f[i].resize(n+7);
for(re int i=1,u,v;i<n;i++)
scanf("%d%d",&u,&v),e[u].pb(v),e[v].pb(u);
Dfs(1,0);
printf("%lld\n",(f[0][1]+m-1)%m);
return 0;
}
the end
2020/4/29 一场令人头疼的cf。。。的更多相关文章
- OpenWrt(LEDE)2020.4.29更新 UPnP+NAS+多拨+网盘+DNS优化+帕斯沃 无缝集成+软件包
交流群:QQ 1030484865 电报: t_homelede 固件说明 基于Lede OpenWrt R2020.4.8版本(源码截止2020.4.29)Lienol Feed及若干自行维护 ...
- 学习 Gin 问题总结 2020.12.29
学习 Gin 问题总结 2020.12.29 数据绑定与解析 BindXXX,ShouldBindXXX和ShouldBindWith区别 BindXXX 会自动返回信息,输入无效时,在header写 ...
- 最近两场比赛 CF 285 & TC 646
Codeforces 285 这场rating又掉了,好在只掉了十多. 题目比较水,但是我比赛时居然只艰辛地过了前两道. 504A 由于图是森林,所以一定有度为1的点,把这些点删了后图还是森林.然后就 ...
- 2020/1/29 PHP代码审计之进一步学习XSS【持续更新】
0x00 上午学习了XSS漏洞,中午吃饭想了想,还是思考的太浅层了,这种老生常谈的东西对于现在的我意义不大.现在我需要的是思考.于是就有了这个随笔.在本文中,我会持续更新一些XSS的深入思考,payl ...
- 蓝桥2020 B组 第一场考试
2. 纪念日 问题描述: 请问从 1921 年 7 月 23 日中午 12 时到 2020 年 7 月 1 日中午 12 时一共包 含多少分钟? 答案提交: 这是一道结果填空题,你只需要算出结果后提交 ...
- 2020/1/29 PHP代码审计之XSS漏洞
0x00 XSS漏洞简介 人们经常将跨站脚本攻击(Cross Site Scripting)缩写为CSS,但这会与层叠样式表(Cascading Style Sheets,CSS)的缩写混淆.因此,有 ...
- cf Round#273 Div.2
题目链接,点击一下 Round#273 Div.2 ================== problem A Initial Bet ================== 很简单,打了两三场的cf第一 ...
- 2020年AI、CV、NLP顶会最全时间表
2020年AI.CV.NLP顶会最全时间表 2019-09-01 14:04:19 weixin_38753768 阅读数 40 2020 AI.CV.NLP主流会议时间表,包含会议举办的时间.地 ...
- 20190708三人开黑CF模拟赛
7月8号晚上8点和两位巨佬开了一场虚拟cf: [Helvetic Coding Contest 2018 online mirror (teams allowed, unrated)] 我这么蔡,只A ...
- 软路由OpenWrt(LEDE)2020.5.10更新 UPnP+NAS+多拨+网盘+DNS优化
近期更新:2020.05.10更新-基于OpenWrt R2020.5.9版本,源码截止2020.05.10. 交流群:QQ 1030484865 电报 t.me/t_homelede 版本说 ...
随机推荐
- ELK8.8部署安装并配置xpark认证
ELK8.8部署安装并配置xpark认证 介绍 主要记录下filebeat+logstash+elasticsearch+kibana抽取过滤存储展示应用日志文件的方式:版本基于8.8,并开启xp ...
- 兰姆达 x AnayticDB 降本30%的数据湖最佳实践
1. 客户介绍 上海兰姆达数据科技有限公司(简称"兰姆达数据")是一家提供卓越的数据科学软件产品和解决方案的初创高科技公司.兰姆达核心团队专注于大数据,机器学习算法和精准营销Saa ...
- AcWing 4486. 数字操作题解
题目描述 给定一个整数 \(n\),你可以对该数进行任意次(可以是 \(0\) 次)变换操作. 每次操作为以下两种之一: 将整数 \(n\) 乘以任意一个正整数 \(x\). 将整数 \(n\) 替换 ...
- String s=new String(“hello”)的执行过程
一. 介绍 String 是Java.long包下的String类,是一个特殊的引用类型,用于表示字符串.它提供了许多方法来操作和处理字符串,比如连接.截取.查找.替换等.String类内部使用字符数 ...
- Centos静默安装Oracle11G
环境准备 Oracle 11gR2 64位 Linux版安装包 linux.x64_11gR2_database_1of2.zip linux.x64_11gR2_database_2of2.zip ...
- Unity UGUI的RawImage(原始图片)组件的介绍及使用
Unity UGUI的RawImage(原始图片)组件的介绍及使用 1. 什么是RawImage组件? RawImage是Unity UGUI中的一个组件,用于显示原始图片.与Image组件不同,Ra ...
- 【go语言】1.1.1 Go 语言的历史和背景
Go 语言,也被称为 Golang,是一种静态强类型.编译型的开源编程语言.Go 语言的出现是为了解决当下的软件开发问题,特别是大规模软件系统的开发. Go 语言的设计者包括 Robert Gries ...
- 源码解析Collections.sort ——从一个逃过单测的 bug 说起
本文从一个小明写的bug 开始,讲bug的发现.排查定位,并由此展开对涉及的算法进行图解分析和源码分析. 事情挺曲折的,因为小明的代码是有单测的,让小明更加笃定自己写的没问题.所以在排查的时候,也经历 ...
- AcWing 第 92 场周赛 C题 4866. 最大数量 题解
原题链接 链表 + 并查集乱搞做法: 思路 首先可以发现,想要让度数尽量大,那我们应该构造成菊花图,即下图所示: 对于每个需求,我们可以知道,如果之前他们没有连在一起,那我们一定得把他们连在一起,该过 ...
- pc 移动端 双端切换
实现一个项目匹配多个端,使用vue.config自带的page 实现多个页面切换.官网介绍:https://cli.vuejs.org/zh/config/#pages 在创建的vue项目中找到 vu ...