SXYZ-7.3训练赛

T1
房
啥啥啥,T1又又又爆了,整个人精神状态 良好。
解题思路
考虑数据保证任意两个房子不重合
建一个结构体存两边
最后判断一下
\(>t\) 加两个
\(==t\) 加一个
== 但是!!!!,没有排序!!喜提5分 ==
/*
刚刚写思路咋卡退了??
考虑数据保证任意两个房子不重合
建一个结构体存两边
最后判断一下
>t加两个
==t加一个
*/
#include<bits/stdc++.h>
using namespace std;
#define N 300000
int x[N],a[N],n,t;
struct nod{
double l,r;
}f[N];
bool cmp(nod a,nod b){
return a.l<b.l;
}
int main(){
freopen("house.in","r",stdin);
freopen("house.out","w",stdout);
scanf("%d%d",&n,&t);
for(int i=1;i<=n;i++){
scanf("%d%d",&x[i],&a[i]);
}
for(int i=1;i<=n;i++){
f[i].l=x[i]-(a[i]/2.0);
f[i].r=x[i]+a[i]/2.0;
}
sort(f+1,f+1+n,cmp);
int ans=2;
for(int i=1;i<n;i++){
if((f[i+1].l-f[i].r)>t) ans+=2;
if((f[i+1].l-f[i].r)==t) ans++;
}
printf("%d",ans);
return 0;
}
T2
车
考虑暴力时间复杂度 \(O(n^2k)\) ,
由于是环,于是破环为链。
从头到尾扫一遍。、
6 4
2 2 1 3 3 1
3 2 4 11
很遗憾没有想出 \(O(nk)\) 的正解,因为我状态转移不了。
写了个模拟退火,感觉跑的还挺快
喜提25分
又细想了一下双指针做法,但是感觉实现起来很困难。
T4
数
看到题目暴力就有了,写一个 get 函数,然后从1枚举到 R,看是否符合条件。
ULL get(ULL m){
ULL sum=0;
while(m!=0){
sum+=m%10;
m=m/10;
}
return sum;
}
比赛时捞了45分。
然后尝试打表暴力优化,然而好像极限是55分,\(1e18\) 过于强悍。
for(int i=0;i<=1e6;i++){
if(i%10==0)
biao[i]=get(i);
else biao[i]=biao[i-1]+1;
}
for(int i=1;i<=R;i++){
if(i*k<=1e6){
if(biao[i]==biao[i*k]) ans++;
}
else{
if((biao[i/1000000]+biao[i%1000000])==(biao[i*k/1000000]+biao[(i*k)%1000000])) ans++;
}
}
思考正解数位 DP,
设 \(dp[i][0/1][j][p][t]\) 表示填到了第 i 位,卡不卡上界,\(f(x)=j\) ,\(f(k×x)=p\) (不计算最高位),需要向最高位进 t 的 x 有多少个。
所以这个 0/1 就表示后面的 i 为和 R 后 i 位的大小关系,如果填的数大于 R 后 i 为,那么这个状态就是1;否则就是0
至于转移,就比较简单,我们枚举这一位上填什么数y,那么对于x,数位和增加了y,对于 \(k×x\),这一位上直接来一个乘法是 \(k×y\),还有之前的进位 t,于是就是 \((k×y+t)%10\),新的进位就是 \((k×y+t)/10\)。
最后的答案就是 \(∑idp[lgR][0][i][i][0]\),我们把 \(j−p\) 看成一维状态就好了
AC代码:
#include<bits/stdc++.h>
#define re register
#define LL long long
LL dp[25][2][1000][500];
int m,w,a[25],M=250;LL n;
inline void split(LL x) {
while(x) a[++w]=(x%10),x/=10;
}
int main() {
freopen("number.in","r",stdin);
freopen("number.out","w",stdout);
scanf("%lld%d",&n,&m);
dp[0][0][0][M]=1;
split(n);
for(re int i=0;i<w+3;i++)
for(re int j=0;j<2;++j)
for(re int k=0;k<1000;++k)
for(re int p=M-2*i*9;p<=M+2*i*9;++p) {
if(!dp[i][j][k][p]) continue;
for(re int t=0;t<10;++t)
dp[i+1][t==a[i+1]?j:t>a[i+1]][(k+t*m)/10][p+t-(k+t*m)%10]+=dp[i][j][k][p];
}
printf("%lld\n",dp[w+3][0][0][M]-1);
return 0;
}
SXYZ-7.3训练赛的更多相关文章
- 10.0.0.55_12-16训练赛部分writeup
0x1 - MISC MISC100 一张帅行的照片 目测是图片隐写,但是binwalk并没有出来,应该是对文件头进行了修改 010editor查看一下,发现在jpg文件尾之后还有大量的数据 而且在灰 ...
- Contest1592 - 2018-2019赛季多校联合新生训练赛第二场(部分题解)
Contest1592 - 2018-2019赛季多校联合新生训练赛第二场 D 10248 修建高楼(模拟优化) H 10252 组装玩具(贪心+二分) D 传送门 题干 题目描述 C 市有一条东西走 ...
- Contest1585 - 2018-2019赛季多校联合新生训练赛第一场(部分题解)
Contest1585 - 2018-2019赛季多校联合新生训练赛第一场 C 10187 查找特定的合数 D 10188 传话游戏 H 10192 扫雷游戏 C 传送门 题干: 题目描述 自然数中除 ...
- 7.30 正睿暑期集训营 A班训练赛
目录 2018.7.30 正睿暑期集训营 A班训练赛 T1 A.蔡老板分果子(Hash) T2 B.蔡老板送外卖(并查集 最小生成树) T3 C.蔡老板学数学(DP NTT) 考试代码 T2 T3 2 ...
- HDU6578 2019HDU多校训练赛第一场 1001 (dp)
HDU6578 2019HDU多校训练赛第一场 1001 (dp) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6578 题意: 你有n个空需要去填,有 ...
- HDU6579 2019HDU多校训练赛第一场1002 (线性基)
HDU6579 2019HDU多校训练赛第一场1002 (线性基) 传送门:http://acm.hdu.edu.cn/showproblem.php?pid=6579 题意: 两种操作 1.在序列末 ...
- 2018牛客网暑假ACM多校训练赛(第三场)I Expected Size of Random Convex Hull 计算几何,凸包,其他
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round3-I.html 题目传送门 - 2018牛客多校赛第三场 I ...
- 2018牛客网暑假ACM多校训练赛(第三场)G Coloring Tree 计数,bfs
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round3-G.html 题目传送门 - 2018牛客多校赛第三场 G ...
- 2018牛客网暑假ACM多校训练赛(第三场)D Encrypted String Matching 多项式 FFT
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round3-D.html 题目传送门 - 2018牛客多校赛第三场 D ...
- 2018牛客网暑假ACM多校训练赛(第二场)E tree 动态规划
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-2018-Summer-Round2-E.html 题目传送门 - 2018牛客多校赛第二场 E ...
随机推荐
- Android低功耗子系统的投票机制以及触发进入系统休眠的过程
从kernel角度看,系统是否进入休眠应该由内核来控制,因此Linux引入了 wakeup source以及autosleep机制 关于wakeup source的介绍,请参考: Wakeup Sou ...
- NameCheap域名怎么样,如何注册购买域名?如何解析域名?
Namecheap介绍 Namecheap是一家国外域名注册商和网站托管公司,成立于2000年,提供域名注册.虚拟主机.电子邮件托管.SSL证书.免费的WHOIS保护.CDN.VPS主机和独立服务器. ...
- 【TypeScript】Re01
参考视频: https://www.bilibili.com/video/BV14Z4y1u7pi JS已有类型: 基础类型 number / string / boolean / null / un ...
- 【Java】在线文件预览服务 KkFileView
原来有第三方在线预览服务接口: 需要收费使用: https://view.xdocin.com/ 但是经费不足,突然撤掉服务接口,只能把KkFileView架出来使用了 KkFileView官网地址: ...
- 【Java】【常用类】Comparable 可比较接口 Comparator 比较器接口
我们需要对对象进行排序,但是对象不是像基本类型的那样,是具体的数值 如果要对对象比较,需要实现两个接口的任意一个即可 Comparable 可比较接口 Comparator 比较器接口 String包 ...
- 【HbuilderX】解决苹果手机不能连接Win10问题
从微软商店上下载Itunes 只要这个Itunes能识别Iphone,HbuilderX也可以识别Iphone 如果之前已经装了其他来源下载的Iphone,先卸载掉,然后重启系统安装 另外: 还有一种 ...
- Asp.Net Core之Identity源码学习
什么是Identity ASP.NET Identity是构建核心 Web 应用程序(ASP.NET.登录和用户数据)的成员系统.ASP.NET核心标识允许您向应用程序添加登录功能,并可以轻松自定义有 ...
- 如何配置域名的 CNAME —— 添加记录集时,为什么会提示“与已有解析记录冲突”?
参考: https://support.huaweicloud.com/dns_faq/dns_faq_016.html https://developer.qiniu.com/fusion/kb/1 ...
- 【转载】 Mobaxterm 中文输入Backspace按键问题
版权声明:本文为CSDN博主「Flynnsin」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明.原文链接:https://blog.csdn.net/qq_45830 ...
- 实现一个终端文本编辑器来学习golang语言:第三章文本查看器part1
本章我们来完成文本编辑器的文件打开和查看功能,最后成品如上图.我们将分4步,逐渐完成本章所需功能.内容比较多,会分为两个部分,第一部分主要关注于"View视图"和"buf ...