热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CodeforcesRound#288(Div.2)题解

【A】水题,模拟即可。【B】水题,模拟即可。【C】【题意】有n个鬼魂拜访她每个蜡烛可以产生t秒的光每秒可以点一支蜡烛,燃烧t秒

【A】水题,模拟即可。

【B】水题,模拟即可。

【C】

【题意】

有n个鬼魂拜访她
每个蜡烛可以产生t秒的光
每秒可以点一支蜡烛,燃烧t秒
每个鬼魂拜访时至少有m个蜡烛
时间轴在[1,300]
【解题方法】

如果to11o11
第一个鬼魂出现的时间设为a[0]
a[0]-1,a[0]-2,a[0]-m都必须点蜡烛
然后呢,第二个鬼魂呢?看它这个点延续过来多少个蜡烛,如果少,就相应在提前位置点蜡烛
【复杂度分析】O(n^3)

【代码】

int a[333],b[333];
int main()
{int n,m,t;cin>>n>>t>>m;for(int i &#61; 1; i <&#61; n; i&#43;&#43;){int x;cin>>x;a[x] &#61; 1;}if(t &#61; i - need; st--){for(int j &#61; st &#43; 1; j <&#61; st &#43; t; j&#43;&#43;){if(j > 0) b[j]&#43;&#43;;}}}}}cout<}
【D】给了n个3个字符的字符串&#xff0c;这些字符串是一个字符串的字串&#xff0c;问能不能找到一个长度为n&#43;2的字符串使得满足这个条件&#xff1f;

【解题方法】白书上例题&#xff0c;把前两个字符和后两个字符hash成两个整数u,v&#xff0c;然后u,v之间连接一条有向边。然后判断这个有相同是否有欧拉通路&#xff0c;有的话&#xff0c;画出来就可以了。

【代码】

【复杂度分析】O(n*logn)



【E】给了n个条件&#xff0c;代表有n对()&#xff0c;每个l,r代表第i对括号左右下标相差的范围&#xff0c;问是否存在满足这个限制的括号序列&#xff1f;
【解题方法】贪心&#xff0c;可以用经典的栈来解决这个问题。步骤如下&#xff1a;

1.当前字符串长&#xff0b;1大于等于当前栈内元素个数&#xff0b;当前区间左端点值&#xff0c;相等时就是遇到一组匹配的"()"

2.若1且当前字符串长&#xff0b;1小于等于当前栈内元素个数&#xff0b;当前区间右端点值&#xff0c;

3.若2则栈顶“(”出栈&#xff0c;若不满足2则直接输出IMPOSSIBLE退出&#xff0c;因为此时找不到与之匹配的")"&#xff0c;相当于无解

条件2很好理解因为给了一个区间&#xff0c;设"("的下标为l&#xff0c;与之匹配的")"下标为r&#xff0c;则有l &#61; stack.size()&#xff0c;r∈[l&#43;l0&#xff0c;l&#43;r0]

最后若栈内还有元素则表示存在找不到匹配的"("&#xff0c;则输出IMPOSSIBLE

【代码】

const int maxn &#61; 2222;
int stk[maxn], top;
int pos[maxn], l[maxn], r[maxn];
char ans[maxn];
int len &#61; 0;
int main()
{int n;cin>>n;bool ok &#61; 1;for(int i &#61; 0; i }





推荐阅读
author-avatar
无欲似水_803
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有