传送门

A - New Year and Counting Cards

•题意

有n张牌,正面有字母,反面有数字

其中元音字母$a,e,o,i,u$的另一面必须对应$0,2,4,6,8$的偶数

其他字母可以和任意数字对应

问至少检查几次可以使这n张牌合法

•思路

由于偶数可以对应任何牌,但奇数必须对应不是元音的字母,所以所有的奇数要检查

由于元音字母只可以对应偶数,其他字母可以对应任意的数,所以元音字母要检查

记录元音字母+奇数的个数

•代码

 #include<bits/stdc++.h>
using namespace std;
string s;
int main()
{
cin>>s;
int num=;
for(int i=;i<s.length();i++)
{
int a=s[i]-'';
if(((a&)&&a>&&a<)||s[i]=='a'||s[i]=='e'||s[i]=='i'||s[i]=='o'||s[i]=='u')
num++;
}
printf("%d\n",num);
}

B.New Year and Buggy Bot

•题意

给一个迷宫,其中$S$代表起点,$E$代表终点,$#$代表障碍物,#.#代表道路

$0,1,2,3$代表上下左右四个方位(顺序不一定),

给定一个序列,问按照序列走,从起点到终点一共多少种走法

•思路

对$0,1,2,3$进行全排列,第1,,2,3,4个位置分别代表上下左右

记录从起点到终点的方案数

•代码

 #include<bits/stdc++.h>
using namespace std;
char s[][];
char t[];
int a[]={,,,};
int num=;
int n,m;
struct node
{
int x,y;
}st,en;
void solve(int u,int d,int l,int r)
{
int len=strlen(t+);
int x=st.x,y=st.y;
for(int i=;i<=len;i++)
{
int now=t[i]-'';
if(now==u)
x--;
else if(now==d)
x++;
else if(now==l)
y--;
else if(now==r)
y++; if(s[x][y]=='#'||x<||x>n||y<||y>m)
return ;
if(x==en.x&&y==en.y)
{
num++;
return ;
}
}
}
int main()
{
scanf("%d%d",&n,&m);
for(int i=;i<=n;i++)
scanf("%s",s[i]+);
for(int i=;i<=n;i++)
{
for(int j=;j<=m;j++)
{
if(s[i][j]=='S')
st={i,j};
if(s[i][j]=='E')
en={i,j};
}
}
scanf("%s",t+);
do
{
solve(a[],a[],a[],a[]);
}while(next_permutation(a,a+)); printf("%d\n",num);
}

C - New Year and Curling

•题意

有n个实心圆在无穷远处,给出他们圆心的横坐标

现从无穷远处按照从1到n的顺序,往x轴推圆

由于圆是实心的,所以不能相交

问推完后每个圆的圆心的y坐标

•思路

一个圆不能再推动的前提是

①推到了x轴

②与其他圆相切

与其他圆相切的时候,只要一相切就不会再动了,也就是不能绕过相切早的去和晚的相切

可以假设可以都可以推到x轴,然后挨个去找前面可以和他相切的

注意找的是y坐标最大的,也就是相切最早的那一个

y坐标可以这么计算出 $h=(2r)^{2}-d^2$ (其中$d=a[i]-a[j]$) ,于是$b[j]=b[i]+h$

•代码

 #include<bits/stdc++.h>
using namespace std;
int n,r;
int L,R;
int a[];
double b[];
int main()
{
scanf("%d%d",&n,&r);
for(int i=;i<=n;i++)
scanf("%d",a+i);
for(int i=;i<=n;i++)
{
b[i]=1.0*r;
for(int j=;j<i;j++)
{
int d=a[i]-a[j];
b[i]=max(b[i],b[j]+sqrt(*r*r-d*d));
}
}
for(int i=;i<=n;i++)
printf("%.10f ",b[i]);
}

CodeForces Goodbye 2017的更多相关文章

  1. Codeforces Goodbye 2018

    Goodbye 2018 可能是我太菜考试的时候出不了$E$ 可能是我太菜考试的时候调不出$F$ 所以转化为手速场之后手速还上不去.jpg A 模拟题意... #include <cstdio& ...

  2. Codeforces Technocup 2017 - Elimination Round 2 D. Sea Battle(贪心)

    题目链接 http://codeforces.com/contest/729/problem/D 题意:给你一个1*n的区域有a艘船,每艘船宽b,已经开了k枪都没打到,问你最少再开几枪至少能打到一艘船 ...

  3. Codeforces Technocup 2017 - Elimination Round 2 E Subordinates(贪心)

    题目链接 http://codeforces.com/contest/729/problem/E 题意:给你n个人,主管id为s,然后给你n个id,每个id上对应一个数字表示比这个人大的有几个. 最后 ...

  4. Goodbye 2017 B

    [题意]: 鲍勃编程一个机器人在2d迷宫中导航.迷宫有一些障碍.空单元格用'.'表示,其中障碍物用'#'表示.迷宫中有一个机器人.它的起始位置用字符“S”表示.这个位置没有任何障碍.迷宫中也有一个出口 ...

  5. Codeforces 908D New Year and Arbitrary Arrangement(概率DP,边界条件处理)

    题目链接  Goodbye 2017 Problem D 题意  一个字符串开始,每次有$\frac{pa}{pa+pb}$的概率在后面加一个a,$\frac{pb}{pa+pb}$的概率在后面加一个 ...

  6. CF500G / T148321 走廊巡逻

    题目链接 这题是 Codeforces Goodbye 2014 的最后一题 CF500G,只是去掉了 \(u \not= x, v \not = v\) 的条件. 官方题解感觉有很多东西说的迷迷瞪瞪 ...

  7. Codeforces Round #412 (rated, Div. 2, base on VK Cup 2017 Round 3)(A.B.C,3道暴力题,C可二分求解)

    A. Is it rated? time limit per test:2 seconds memory limit per test:256 megabytes input:standard inp ...

  8. Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals)

    Codeforces Round #403 (Div. 2, based on Technocup 2017 Finals) 说一点东西: 昨天晚上$9:05$开始太不好了,我在学校学校$9:40$放 ...

  9. Codeforces Round #412 (rated, Div. 2, base on VK Cup 2017 Round 3) A B C D 水 模拟 二分 贪心

    A. Is it rated? time limit per test 2 seconds memory limit per test 256 megabytes input standard inp ...

随机推荐

  1. 浅谈JavaScript的面向对象和它的封装、继承、多态

    写在前面 既然是浅谈,就不会从原理上深度分析,只是帮助我们更好地理解... 面向对象与面向过程 面向对象和面向过程是两种不同的编程思想,刚开始接触编程的时候,我们大都是从面向过程起步的,毕竟像我一样, ...

  2. oracle水线的定义

    1.水线定义了表的数据在一个BLOCK中所达到的最高的位置. 2.当有新的记录插入,水线增高 3.当删除记录时,水线不回落 4.减少查询量

  3. hdu1525 博弈

    /* n%m==0 n状态 n>=2*m 先手决定谁来面对当前的状态,并且可以知道状态,所以先手必胜. */ #include<stdio.h> int min(int x,int ...

  4. linux中$@,$*,$0,$$,$?参数的含义

    $# 是传给脚本的参数个数 $ 是脚本本身的名字 $ 是传递给该shell脚本的第一个参数 $ 是传递给该shell脚本的第二个参数 $@ 是传给脚本的所有参数的列表 $* 是以一个单字符串显示所有向 ...

  5. HDU 1081 To The Max【dp,思维】

    HDU 1081 题意:给定二维矩阵,求数组的子矩阵的元素和最大是多少. 题解:这个相当于求最大连续子序列和的加强版,把一维变成了二维. 先看看一维怎么办的: int getsum() { ; int ...

  6. Spring Security入门篇——标签sec:authorize的使用

    Security框架可以精确控制页面的一个按钮.链接,它在页面上权限的控制实际上是通过它提供的标签来做到的 Security共有三类标签authorize authentication accessc ...

  7. python 字典创建

  8. qt开发ROS gui 遇到:global.h:1087:4: error: #error &quot;You must build your code with position independent code if Qt was built with -reduce-relocations. &quot......

    具体错误如下: 一共出现38个错误 这个错误是在导入cmakelists.txt时产生的,其实不是工程本身的问题,是因为我卸载ros,再重新安装ros的过程中把qtcreator的部分包给删除了,导致 ...

  9. 如何解决iOS内存错误

    由于iOS5.0之前没有自动应用计数机制,也没有Java那样的垃圾回收功能.我们都需要自己管理和控制对象的回收,这是一件很麻烦的事情,也是做iOS项目中最容易出现的问题.如果不掌握这些方法,调试这些问 ...

  10. Android 使用Toolbar+DrawerLayout快速实现仿“知乎APP”侧滑导航效果

    在以前,做策划导航的时候,最常用的组件便是SlidingMenu了,当初第一次用它的时候觉得那个惊艳啊,体验可以说是非常棒. 后来,Android自己推出了一个可以实现策划导航的组件DrawerLay ...