链接: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的更多相关文章

  1. Gym 102263 ArabellaCPC 2019 J - Thanos Power (DP,数学)

    题意:有一个整数\(n\),每次可以对加\(10^x\)或减\(10^x\),问最少操作多少次能得到\(n\). 题解:对于某一位上的数,我们可以从\(0\)加几次得到,或者从前一位减几次得到.所以对 ...

  2. ABC155E - Payment

    简述题意,给你一个大数,你可以选择10的次幂进行加减运算,问如何用最少的次数从0到达这个大数 考虑从这个大数到0,从最低位开始,每次都将这个位置取完,2种策略,贪心的话不好处理进位的情况,可以想到是D ...

  3. 2019年台积电进军AR芯片,将用于下一代iPhone

    近日,有报道表示台积电10nm 芯片可怜的收益率可能会对 2017 年多款高端移动设备的推出产生较大的影响,其中自然包括下一代 iPhone 和 iPad 机型.不过,台积电正式驳斥了这一说法,表明1 ...

  4. VS经常报错的link error 2019

    VS经常报错的link error 2019 原因如下: 可能是找得到头文件,但是相关的dll或者lib找不到,需要在配置里面添加相应的库文件. project=>configuration.. ...

  5. YTU 2019: 鞍点计算

    2019: 鞍点计算 时间限制: 1 Sec  内存限制: 64 MB 提交: 66  解决: 30 题目描述 找出具有m行n列二维数组Array的"鞍点",即该位置上的元素在该行 ...

  6. Windows Server 2019 预览版介绍

    在Windows server 2012.Windows server 2016还未完全普及的情况下,昨天Windows Server团队宣布Windows Server 2019将在2018年的下半 ...

  7. Telerik控件集-2019.R1.SP1.All

    Telerik 专注于微软.Net平台的表示层与内容管理控件,提供高度稳定性和丰富性能的组件产品DevCraft,并可应用在非常严格的环境中.Telerik拥有 Microsoft, HP, Alco ...

  8. CTF丨2019互联网安全城市巡回赛·西安站,我们来了!

    万物互联时代,网信事业发展突飞猛进,互联网悄然渗透到国民生活的每一个角落,伴随而来的网络安全威胁和风险也日渐突出.网络诈骗.钓鱼软件.勒索病毒等安全问题层出不穷,信息泄露等网络安全事件也频繁上演,给用 ...

  9. AI2(App Inventor 2)离线版服务器(2019.04.28更新)

    我们的目标:搭建一个本地多用户的App Inventor 2 服务器   演示: http://ai2.fsyz.net  [旧 win]     http://ai2n.fsyz.net [新 Ce ...

随机推荐

  1. 屏蔽浏览器默认样式 user agent stylesheet

    user agent stylesheet <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" &q ...

  2. PHP 换行处理

    换行符 unix系列用 \n windows系列用 \r\n mac用 \r PHP中可以用PHP_EOL来替代,以提高代码的源代码级可移植性 如: <?php echo PHP_EOL; // ...

  3. numpy的函数使用

    目录 注 help ,帮助 numpy.genfromtxt,导入文件 array,创建数组(1,2维数组) array,创建行列向量 numpy.shape,看numpy数据的行列信息 numpy. ...

  4. Nehe OpenGL教程第一课-创建一个OpenGL窗口(Win32)

       原文英文地址为:Creating an OpenGL Window (Win32),翻译的chm中文格式文档下载地址为:OpenGL教程电子书(chm格式)中文版,源代码在官网上也可以下载到,每 ...

  5. 数据概览神器pandas_profiling

    安装: pip install pandas_profiling 用法如下: import pandas as pd import pandas_profiling df = pd.read_exce ...

  6. python基础【第六篇】

    list列表 基本结构 lst =[1,2,3,5,6] 为什么学列表? 列表能够存储比字符串更多的数据 列表能够存储各种数据类型 列表的注意点 列表是有序的 列表是可变的,支持索引,切片,步 切片后 ...

  7. Json解析之FastJson

    版权声明:转载请注明出处 https://blog.csdn.net/heqiangflytosky/article/details/37659943 1.FastJson介绍 FastJson是阿里 ...

  8. Android 中MediaPlayer播放音频

    1.播放/res/raw/目录下的音频资源 public class MainActivity extends Activity { MediaPlayer mediaPlayer; int posi ...

  9. koa2实现登录注册功能(ejs+mongodb版)

    gtihub仓库地址:(由于国内处于敏感时期,github暂时无法访问) 主要使用的中间件: "ejs": "^2.7.1",(渲染模板) "koa& ...

  10. NOPI Excel 数据导入到数据库

    /// <summary> /// 上传excel文件 并将文件数据导入到数据库 /// </summary> /// <param name="file&qu ...