Codeforces Round #530 (Div. 2) (前三题题解)
总评
今天是个上分的好日子,可惜12:30修仙场并没有打。。。
A. Snowball(小模拟)
我上来还以为直接能O(1)算出来没想到还能小于等于0的时候变成0,那么只能小模拟了。从最高的地方进行高度的模拟,如果遇到石头就去判断一下会不会小于0其他没有什么好说的了
代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int a,b,c,d,e,f;
  cin>>a>>b>>c>>d>>e>>f;
  for(int i=b;i>=0;i--)
  {
    a+=i;
    if(d==i)
    {
      a-=c;
      if(a<=0)
      a=0;
    }
    else if(f==i)
    {
      a-=e;
      if(a<=0)
      a=0;
    }
  }
  cout<<a;
}
B. Squares and Segments(数学)
题目真是贼长啊,实际上就是找到最小的边能够映射成给定的正方形。上来我直接被样例的4给昏迷了,怎么还能4条边围成4个正方形,实际上2*2就可以
进而想到了如果这个正方形的个数是个完全平方数那么就是sqrt(n)*2
然后进行了一次推敲,如果不是完全平方数那么就用原本的个数减去最近的完全平方数然后去凑列,也就是说看差值能凑成多少最近的完全平方数的行的列,然后加上这些列就是边数
代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  int t;
  cin>>t;
  if(sqrt(t)==int(sqrt(t)))
  cout<<sqrt(t)*2;
  else
  cout<<int(sqrt(t))*2+(t-int(sqrt(t))*int(sqrt(t)))/int(sqrt(t))+(t%int(sqrt(t))!=0);
}
C. Postcard (字符串基础)
这个地方真的是语法上有太多的漏洞,当时直接看了c++一半就来了。。。语法漏洞还是比较多。用了string类的erase后续的会向前移并且坐标也会前移,也就是说你erase了两个然后坐标又前移了两个,如果继续遍历的话会出错必须把坐标改回来
然后我们来看看具体的情况有多少
首先要看看特例也就是不可能的情况
(1)如果去掉标记的字符还不能达到给定的长度,那么不可能
(2)如果没有*但是长度比原本的字符的长度长那么不可能
然后我们再去算可能的
(1)去掉型,去掉合适的然后能够得到答案
(2)增加型,存在。先把?的标记都去掉然后把第一个增加去掉其他的*即可
代码
#include <bits/stdc++.h>
using namespace std;
int main()
{
  ios::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  string a;
  cin>>a;
  int len,ans=0,f=0;
  cin>>len;
  for(int i=0;i<a.size();i++)
  {
    if(isalpha(a[i]))
    ans++;
    else if(a[i]=='*')
    f++;
  }
  int mk=a.size()-ans;
  if(ans-mk>len||(ans<len&&!f))
  return cout<<"Impossible",0;
  if(ans-mk<=len&&ans>=len)
  {
    int re=ans-len;
    int now=1;
    for(int i=0;i<a.size();i++)
    {
      if(!isalpha(a[i]))
      {
        if(now<=re)
        now++,a.erase(i-1,2),i-=1;
        else
        a.erase(i,1);
      }
    }
    cout<<a;
  }
  if(ans<len)
  {
    for(int i=0;i<a.size();i++)
    if(a[i]=='?')
    a.erase(i-1,2),i-=1;
    int te=a.size()-f;
    for(int i=0;i<a.size();i++)
    if(a[i]=='*')
    {
      a.erase(i,1);
      if(te<len)
      a.insert(i,len-te,a[i-1]),te=len;
    }
    cout<<a;
  }
}
												
											Codeforces Round #530 (Div. 2) (前三题题解)的更多相关文章
- Lyft Level 5 Challenge 2018 - Final Round (Open Div. 2) (前三题题解)
		
这场比赛好毒瘤哇,看第四题好像是中国人出的,怕不是dllxl出的. 第四道什么鬼,互动题不说,花了四十五分钟看懂题目,都想砸电脑了.然后发现不会,互动题从来没做过. 不过这次新号上蓝名了(我才不告诉你 ...
 - Codeforces Round #609 (Div. 2)前五题题解
		
Codeforces Round #609 (Div. 2)前五题题解 补题补题…… C题写挂了好几个次,最后一题看了好久题解才懂……我太迟钝了…… 然后因为longlong调了半个小时…… A.Eq ...
 - BestCoder Round #11 (Div. 2) 前三题题解
		
题目链接: huangjing hdu5054 Alice and Bob 思路: 就是(x,y)在两个參考系中的表示演全然一样.那么仅仅可能在这个矩形的中点.. 题目: Alice and Bob ...
 - Codeforces Round #460 (Div. 2) 前三题
		
Problem A:题目传送门 题目大意:给你N家店,每家店有不同的价格卖苹果,ai元bi斤,那么这家的苹果就是ai/bi元一斤,你要买M斤,问最少花多少元. 题解:贪心,找最小的ai/bi. #in ...
 - Codeforces Round #599 (Div. 2)的简单题题解
		
难题不会啊…… 我感觉写这个的原因就是因为……无聊要给大家翻译题面 A. Maximum Square 简单题意: 有$n$条长为$a_i$,宽为1的木板,现在你可以随便抽几个拼在一起,然后你要从这一 ...
 - Codeforces Round #524 (Div. 2)(前三题题解)
		
这场比赛手速场+数学场,像我这样读题都读不大懂的蒟蒻表示呵呵呵. 第四题搞了半天,大概想出来了,但来不及(中途家里网炸了)查错,于是我交了两次丢了100分.幸亏这次没有掉rating. 比赛传送门:h ...
 - Codeforces Round #195 A B C 三题合集 (Div. 2)
		
A 题 Vasily the Bear and Triangle 题目大意 一个等腰直角三角形 ABC,角 ACB 是直角,AC=BC,点 C 在原点,让确定 A 和 B 的坐标,使得三角形包含一个矩 ...
 - bestcoder Round #7 前三题题解
		
BestCoder Round #7 Start Time : 2014-08-31 19:00:00 End Time : 2014-08-31 21:00:00Contest Type : ...
 - Codeforces Round #416 (Div. 2)(A,思维题,暴力,B,思维题,暴力)
		
A. Vladik and Courtesy time limit per test:2 seconds memory limit per test:256 megabytes input:stand ...
 
随机推荐
- CI框架下的get_instance() 函数
			
你随便下个CI框架的源码都会看到很多的get_instance() 函数,这个函数是用来获取CI 的全局超级对象,CI 是单例模式的框架,所有全局有一个超级对象.因为只有一个实例,所以无论这个函数使用 ...
 - struts 模块化
			
<struts> <!-- 包含了三个配置文件 --> <!-- 不指定路径默认在src下时的方式 --> <include file="strut ...
 - 单独编译framework【转】
			
本文转载自:http://blog.csdn.net/u011168565/article/details/53782325 参考文章: http://bbs.csdn.net/topics/3701 ...
 - 就是这个foxmail有时出现记事同步不了
			
昨天和妈妈商量还是要打算再次买一块正版电池,虽然她现在有点不情愿,但是过一个月再说,然后就是他的号码超出流量6M,由于是2G的流量,按照每M是一元,所以就是扣了6元,然后他的套餐里面显示还有94M也不 ...
 - 【POJ 1679】 The Unique MST
			
[题目链接] 点击打开链接 [算法] 先求出图的最小生成树 枚举不在最小生成树上的边,若加入这条边,则形成了一个环,如果在环上且在最小生成树上的权值最大的边等于 这条边的权值,那么,显然最小生成树不唯 ...
 - Tool:CorelDRAW
			
ylbtech-Tool:CorelDRAW 1.返回顶部 2.返回顶部 3.返回顶部 4.返回顶部 5.返回顶部 1. https://baike.baidu.com/item/Co ...
 - javascript DOM基本操作
			
javascript DOM基本操作 1.DOM(Document Object Model 文档对象模型) 2.节点: 文档节点:document 元素节点:html.head.body.title ...
 - [Swift]通天遁地Swift
			
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
 - selenium对51job进行职位爬虫
			
selenium 爬虫流程如下: 1.对某职位进行爬虫 ---如:自动化测试 2.用到IDE为 pycharm 3.爬虫职位导入到MongoDB数据库中 4.在线安装 pip install pymo ...
 - mac 修改用户权限
			
想安装thinkPHP 下载完以后 访问报403错误 于是百度找 也没找到原因 自己猜测是不是用户权限问题 就是下面目录为tp的用户权限 不是root 其他是root的都能访问 于是百度搜了权限如何修 ...