ArabellaCPC 2019
链接:http://codeforces.com/gym/102263
A:
签到题:A * B 。
B:
题意:类似取石子游戏,每个人可以取max(1, n(当前剩余) - k)个,最后取完的人赢,Kilani先取,问谁能获胜。
思路:一眼就看出是博弈论,找了几种情况推了下发现只有 (n - k <= 1 && n不是偶数 )的情况下 后手才能赢。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
std::ios::sync_with_stdio(false);
int t;
cin >> t;
while(t--)
{
int n, k;
cin >> n >> k;
if(n - k <= && n % == ) cout <<"Ayoub" <<endl;
else cout << "Kilani" <<endl;
}
return ;
}
C:
题意:给你26个字母键、大小写切换键、空格键和删除键,问在一系列操作后打出的字符串和给定的字符串相不相等。
思路:模拟一遍,不过删除不能删到负的orz。
AC代码:
#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e7 + ;
int n, L, k;
char s[maxn], a[maxn], b[maxn], c[maxn];
int main()
{
std::ios::sync_with_stdio(false);
cin >> n;
for(int i = ; i <= n; i++)
{
cin >> s;
for (int j = ; j < strlen(s); j++)
a[++L] = s[j];
a[++L] = ' ';
}
L--;
cin >> k;
int pos = , t = ;
for (int i = ; i <= k; i++)
{
cin >> c;
if (c[] == 'C')
t = (t + ) % ;
else if (c[] == 'B')
{
if (pos > )
pos--;
}
else if (c[] == 'S')
b[++pos] = ' ';
else if (t == )
b[++pos] = c[];
else
b[++pos] = c[] - ;
}
bool flag = true;
if (pos != L)
flag = false;
for (int i = ; i <= L; i++)
if (b[i] != a[i])
flag = false;
if(flag) cout << "Correct" << endl;
else cout << "Incorrect" <<endl;
}
D:
题意:给你俩个数组,数组一中的任意元素可以加上或者减去数组二中的任意元素, 问不限操作次数能否使数组一种所有元素相等。
思路:求出第二数组的最小公倍数,然后差值在其之内和其倍数的都是yes。虽然不是很懂为什么,但是枚举了几个例子发现的确是这样。
AC代码:
#include<bits/stdc++.h>
using namespace std;
const int maxn = 1e6 + ;
typedef long long ll;
ll a[maxn], b[maxn];
int main()
{
std::ios::sync_with_stdio(false);
int n, m;
cin >> n >> m;
for(int i = ;i < n;i++) cin >> a[i];
for(int i = ;i < m;i++) cin >> b[i];
ll d;
if(m == ) d = b[];
else
{
d = __gcd(b[],b[]);
for(int i = ;i <m;i++)
{
d = __gcd(d, b[i]);
} }
bool flag = true;
for(int i = ;i < n;i++)
{
if(abs(a[i] - a[]) % d) {flag = false;break;}
}
if(flag) cout << "Yes" <<endl;
else cout << "No" <<endl;
return ;
}
E:
F:
G:
题意:求所有可能结果的期望值。
思路:算了很久还是一团浆糊,感觉还是无从入手。看了题解才知道,只要考虑 i 对结果的贡献是多少, 对于每个 i ,只有每个比他 小的数才能对结果产生贡献,所有一共有 i - 1种,所以概率为(i - 1)/ n.
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int main()
{
double n;
double ans = ;
scanf("%lf",&n);
for(int i = ;i <= n;i++)
{
ans += (i - )/n * i;
}
printf("%.12f\n",ans);
return ;
}
H:
题意: n个饼,k个锅,一个锅可以煎俩个饼,一个饼有俩面,一个面要煎 5 min,问煎完所有饼的最小时间。
思路:从样例中可以看出 即使饼没有一起煎但最优解还是能做到平均每个饼耗时5分钟。嗯...怎么讲呢 ,反正不超过可用锅的一半就可以换着煎...。
AC代码
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn=1e7+;
const int inf=0x3f3f3f3f;
ll n,k;
int main(){
cin >> n >> k;
if(2LL * k >= n){
cout << << endl;
}
else{
if(n % k != )
cout << (n/k+) *5LL <<endl;
else cout << n/k *5LL << endl; }
return ;
}
I:
题意:给你一个大小为n的数组,分别求出 (2 ~ n)大小个子序列中F(S)的最大值。
思路:排序 每次取数组俩端,因为对于每个数求差的值其实就是子序列最大值减 最小值。
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 3e5 + ;
ll a[maxn];
ll ans[maxn];
int main()
{
std::ios::sync_with_stdio(false);
int n;
cin >> n;
for(int i = ;i < n;i ++)
{
cin >> a[i];
}
sort(a, a + n);
int l = ,r = n - ;
int k = ;
long long ans = ;
long long sum = ;
while(k <= n)
{
if(k % == )
sum += a[r--] - a[l++];
ans += sum;
cout << ans << " ";
k++;
}
return ;
}
J:
题意:给你一个数 a,b一开始值为0,你可以给b加上或者减去 10的x(x > 0) 次方,问最少要几次b能等于a。
思路:一个是每位直接从0加,一个是从10往下走 例如 99可以先 100 再减1.对于每位数在俩者中取最优的比较即可。想是想到了,结果自己写的太丑,就WA了。
AC代码:
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int maxn = 1e5 + ;
int a[maxn];
int main()
{
string s;
cin >> s;
for(int i = ;i < s.size();i++)
{
a[i] = s[i] - '';
}
int ans = a[], sum = - a[] + ;
for(int i = ; i < s.size();i++)
{
int t = ans, k = sum;
ans = min(t + a[i], k + a[i]);
sum = min( - a[i] + + t, - a[i] + k - );
}
cout << min(ans, sum);
return ;
}
K:
L:
M:
签到题:桶排,进位,输出,没了。
AC代码:
#include<bits/stdc++.h>
using namespace std;
int vis[];
int main()
{
std::ios::sync_with_stdio(false);
string s;
cin >> s;
for(int i = ;i < s.size();i++)
{
int t = s[i]- 'a';
vis[t] ++;
}
for(int i = ;i < ;i++)
{
vis[i + ] += vis[i]/;
vis[i] %= ;
}
for(int i = ;i >= ;i--)
{
char t = i + 'a';
for(int j = ;j < vis[i];j++)
{
cout << t;
}
}
cout << endl;
return ;
}
ArabellaCPC 2019的更多相关文章
- Gym 102263 ArabellaCPC 2019 J - Thanos Power (DP,数学)
题意:有一个整数\(n\),每次可以对加\(10^x\)或减\(10^x\),问最少操作多少次能得到\(n\). 题解:对于某一位上的数,我们可以从\(0\)加几次得到,或者从前一位减几次得到.所以对 ...
- ABC155E - Payment
简述题意,给你一个大数,你可以选择10的次幂进行加减运算,问如何用最少的次数从0到达这个大数 考虑从这个大数到0,从最低位开始,每次都将这个位置取完,2种策略,贪心的话不好处理进位的情况,可以想到是D ...
- 2019年台积电进军AR芯片,将用于下一代iPhone
近日,有报道表示台积电10nm 芯片可怜的收益率可能会对 2017 年多款高端移动设备的推出产生较大的影响,其中自然包括下一代 iPhone 和 iPad 机型.不过,台积电正式驳斥了这一说法,表明1 ...
- VS经常报错的link error 2019
VS经常报错的link error 2019 原因如下: 可能是找得到头文件,但是相关的dll或者lib找不到,需要在配置里面添加相应的库文件. project=>configuration.. ...
- YTU 2019: 鞍点计算
2019: 鞍点计算 时间限制: 1 Sec 内存限制: 64 MB 提交: 66 解决: 30 题目描述 找出具有m行n列二维数组Array的"鞍点",即该位置上的元素在该行 ...
- Windows Server 2019 预览版介绍
在Windows server 2012.Windows server 2016还未完全普及的情况下,昨天Windows Server团队宣布Windows Server 2019将在2018年的下半 ...
- Telerik控件集-2019.R1.SP1.All
Telerik 专注于微软.Net平台的表示层与内容管理控件,提供高度稳定性和丰富性能的组件产品DevCraft,并可应用在非常严格的环境中.Telerik拥有 Microsoft, HP, Alco ...
- CTF丨2019互联网安全城市巡回赛·西安站,我们来了!
万物互联时代,网信事业发展突飞猛进,互联网悄然渗透到国民生活的每一个角落,伴随而来的网络安全威胁和风险也日渐突出.网络诈骗.钓鱼软件.勒索病毒等安全问题层出不穷,信息泄露等网络安全事件也频繁上演,给用 ...
- AI2(App Inventor 2)离线版服务器(2019.04.28更新)
我们的目标:搭建一个本地多用户的App Inventor 2 服务器 演示: http://ai2.fsyz.net [旧 win] http://ai2n.fsyz.net [新 Ce ...
随机推荐
- 使用Github SSH Key来避免Hexo部署时输入账户密码
博客原文:http://fengyao.me/2016/04/10/use-git-ssh-key-carry-hexo-deploy/ 前言 当hexo使用https方式连接Github时,每次执行 ...
- Python Numpy 矩阵级基本操作(2)
1.开方与求e指数 import numpy as np from numpy.matlib import randn print "Test sqrt and exp" arr ...
- camunda任务的一些简单操作
public class ZccTaskService { TaskService taskService; @Before public void init(){ ProcessEngineConf ...
- DNS域名解析服务以及Bind服务程序
一般来讲域名比IP地址更加的有含义.也更容易记住,所以通常用户更习惯输入域名来访问网络中的资源,但是计算机主机在互联网中只能通过IP识别对方主机,那么就需要DNS域名解析服务了. DNS域名解析服务( ...
- Linux(三)—— 项目部署环境搭建
目录 项目部署环境搭建 一.linux上网 二.rpm包管理 1.光盘挂载 2.安装卸载rpm包 3.查询是否安装 4.查看软件包 5.互相依赖关系的软件包 三.yum包管理 1.使用aliyun的y ...
- Linux(一)—— Linux环境搭建
Linux环境搭建 一.虚拟机安装 1.下载地址 https://my.vmware.com/web/vmware/info/slug/desktop_end_user_computing/vmwar ...
- CookieUtil.java
package util; import java.io.UnsupportedEncodingException; import java.net.URLDecoder; import java.n ...
- mac vscode 实用快捷键
cmd+del:光标左边删到头 cmd+fn+del:光标右侧删到头
- css3属性 -webkit-filter
css3属性 -webkit-filter -webkit-filter是css3的一个属性,Webkit率先支持了这几个功能,感觉效果很不错.下面咱们就学习一下filter这个属性吧. 现在规范中支 ...
- OI中的快速傅里叶变换(FFT)
快速傅里叶变换(FFT) ---- LLpp ...