Good Bye 2017

A New Year and Counting Cards

题目链接:

http://codeforces.com/contest/908/problem/A

思路:

如果卡片上面是数字,如果是奇数,就需要检查一下。如果是字母,如果是原音字母,需要检查一下。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1504;
int main() {
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
string s,t;
t="aeiou";
cin>>s;
int ans=0;
int lens=s.length();
int lent=t.length();
for(int i=0;i<lens;++i) {
if(s[i]>='0'&&s[i]<='9') {
int num=s[i]-'0';
if(num%2) ++ans;
} else {
for(int j=0;j<lent;++j) {
if(s[i]==t[j]) {
++ans;
break;
}
}
}
}
cout<<ans<<endl;
return 0;
}

B New Year and Buggy Bot

题目链接:

http://codeforces.com/contest/908/problem/B

思路:

设置方向数组,全排列。暴力DFS检查每一种的可能性。要注意DFS判断最后一步的下标,少了最后一步,结果WA8,好可惜...

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 55;
char mp[maxn][maxn];
char op[105];
int n,m,sx,sy,ex,ey;
int a[4]={0,1,2,3};
int ans=0;
int len;
bool dfs(int x, int y, int index) {
if(index>=len) {
if(x==ex&&y==ey) return true;
return false;
}
if(x==ex&&y==ey) return true;
int xx,yy;
for(int i=0;i<4;++i) {
if(op[index]-'0'==a[i]) {
if(i==0) {
xx=x;
yy=y-1;
} else if(i==1) {
xx=x-1;
yy=y;
} else if(i==2) {
xx=x;
yy=y+1;
} else if(i==3) {
xx=x+1;
yy=y;
}
}
}
if(xx<0||xx>=n||yy<0||yy>=m) return false;
if(mp[xx][yy]=='#') return false;
return dfs(xx,yy,index+1);
}
int main() {
scanf("%d %d",&n,&m);
for(int i=0;i<n;++i) scanf("%s",mp[i]);
scanf("%s",op);
len=strlen(op);
for(int i=0;i<n;++i) {
for(int j=0;j<m;++j) {
if(mp[i][j]=='S') {
sx=i;
sy=j;
} else if(mp[i][j]=='E') {
ex=i;
ey=j;
}
}
}
do {
if(dfs(sx,sy,0)) ++ans;
} while(next_permutation(a,a+4));
printf("%d\n",ans);
return 0;
}

C New Year and Curling

题目链接:

http://codeforces.com/contest/908/problem/C

思路:

这道题目,按照先后顺序依次访问每一个掉落下来的圆。计算和之前的圆是否存在相交或者是相切的关系,如果存在,计算出纵坐标。然后在纵坐标中渠道最大值即可。因为碰到第一个圆就停止了,不可能再与其他的圆相切。

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1005;
int x[maxn];
double y[maxn];
int main() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
int n,r;
cin>>n>>r;
for(int i=1;i<=n;++i) {
cin>>x[i];
y[i]=r*1.0;
}
for(int i=2;i<=n;++i) {
for(int j=i-1;j>=1;--j) {
int ll=1005,rr=1;
ll=min(min(ll,x[j]-r),x[i]-r);
rr=max(max(rr,x[j]+r),x[i]+r);
if(rr-ll>4*r) continue;
double temp=sqrt(4*r*r*1.0-(x[i]*1.0-x[j]*1.0)*(x[i]*1.0-x[j]*1.0))+y[j];
y[i]=max(temp,y[i]);
}
}
for(int i=1;i<=n;++i) {
if(i==1) cout<<setiosflags(ios::fixed)<<setprecision(8) << y[i];
else cout<<" "<<setiosflags(ios::fixed)<<setprecision(8) << y[i];
}
cout<<endl;
return 0;
}

Good Bye 2017 A B C的更多相关文章

  1. Hello 2018, Bye 2017

    2017年过去了,过去一年经历了太多,改变了好多好多,可以说人生进入了另一个阶段,有可能是成熟吧. 回顾2017 去年换了新工作,离开了将近工作了8年的公司,不带走一丝云彩,为其任劳任怨,最后没有任何 ...

  2. Good Bye 2017(送命场)

    9815人数场,9500+围观神仙打架...断断续续打Codeforces也快有一年啦,第一次打Good Bye场,满怀前排膜tourist的心愿参加了这场送命场,虽然没看到tourist.不过还是得 ...

  3. Good Bye 2017 E. New Year and Entity Enumeration

    先按照绿点进行分块 第一个绿点和最后一个绿点之后很好处理不说了 两个绿点之间的讨论: 有两种方案 1:红(蓝)点和绿点顺序连接,距离为相邻绿点距离(也就是双倍绿点距离) 2:红(蓝)点和绿点的点阵中寻 ...

  4. Good Bye 2017 D. New Year and Arbitrary Arrangement

    看了别人的题解 首先这题是一个dp dp[i][j] i是当前有多少个a j是当前有多少个ab子序列 dp[i][j] = dp[i+1][j]*Pa + dp[i][i+j]*Pb; i,j 时加一 ...

  5. Good Bye 2017 G. New Year and Original Order

    G. New Year and Original Order time limit per test 2 seconds memory limit per test 256 megabytes inp ...

  6. Good Bye 2017 C. New Year and Curling

    Carol is currently curling. She has n disks each with radius r on the 2D plane. Initially she has al ...

  7. Good Bye 2017 部分题解

    D. New Year and Arbitrary Arrangement 分析 \(dp[i][j]\) 表示已有 \(i\) 个 \(a\) 和 \(j\) 个 \(ab\) 的情况下继续构造能得 ...

  8. Good Bye 2017

    太菜了啊,一不小心就goodbye rating了 A. New Year and Counting Cards time limit per test 1 second memory limit p ...

  9. 【EOJ Monthly 2018.2 (Good bye 2017)】

    23333333333333333 由于情人节要回家,所以就先只放代码了. 此题是与我胖虎过不去. [E. 出老千的 xjj] #include<cstdio> #include<c ...

随机推荐

  1. javascript创建一个基于数组的栈结构

    栈是一种遵从后进先出(LIFO)原则的有序集合.新添加或待删除的元素都保存在栈的同 一端,称作栈顶,另一端就叫栈底.在栈里,新元素都靠近栈顶,旧元素都接近栈底. 栈拥有以下方法: push(eleme ...

  2. appium 处理webview

    折腾了一段时间,无论是模拟器还是真机,driver.contexts都只有NATIVE_APP,无奈放弃切换webview,直接查找定位元素 from time import sleep import ...

  3. *args和**kwargs的作用

    ∗args的作用: *的作用有2个 打包参数(pack)和拆分参数(unpack) 函数接受实参时,按顺序分配给函数形参,如果遇到带∗的形参,那么就把还未分配出去的实参以元组形式打包(pack),分配 ...

  4. [ASP.NET Core 3框架揭秘] 依赖注入[5]: 利用容器提供服务

    毫不夸张地说,整个ASP.NET Core框架是建立在依赖注入框架之上的.ASP.NET Core应用在启动时构建管道以及利用该管道处理每个请求过程中使用到的服务对象均来源于依赖注入容器.该依赖注入容 ...

  5. 最新JetBrains PyCharm 使用教程--下载安装Python库(五)

    最新JetBrains PyCharm 下载安装Python库 ​

  6. python入门斐波那契数列之迭代,递归

    迭代 def fab(n): a1=1 a2=1 a3=1 if n < 1 : print("输入有误!") return -1 while n-2 > 0 : a3 ...

  7. PHP 高级面试115题汇总(含答案)

    1.给你四个坐标点,判断它们能不能组成一个矩形,如判断 ([0,0],[0,1],[1,1],[1,0]) 能组成一个矩形.勾股定理,矩形是对角线相等的四边形.只要任意三点不在一条直线上,任选一点,求 ...

  8. java编程思想第四版第七章习题

    (略) (略) (略) (略) 创建两个带有默认构造器(空参数列表)的类A和类B.从A中继承产生一个名为C的新,并在C内创建一个B类的成员.不要给C编写构造器.创建一个C类的对象并观察其结果. pac ...

  9. nyoj 290 动物统计加强版 (字典树 (Trie) PS:map<TLE>)

    动物统计加强版 时间限制:3000 ms  |  内存限制:150000 KB 难度:4   描述 在美丽大兴安岭原始森林中存在数量繁多的物种,在勘察员带来的各种动物资料中有未统计数量的原始动物的名单 ...

  10. pat 1084 Broken Keyboard(20 分)

    1084 Broken Keyboard(20 分) On a broken keyboard, some of the keys are worn out. So when you type som ...