CF-1111

题目链接

A. Superhero Transformation

  • tags : strings
#include <bits/stdc++.h>
using namespace std;
char s[5] = {'a','e','i','o','u'};
bool check(char t){
for(int i=0;i<5;i++){
if(t == s[i])
return true;
}
return false;
}
int main(){
string a,b;
cin>>a>>b;
int la = a.length();
int lb = b.length();
if(la!=lb){
puts("No");
return 0;
}
else{
for(int i=0;i<la;i++){
bool f1 = check(a[i]);
bool f2 = check(b[i]);
if((f1&&f2)||(!f1&&!f2)){
continue;
}
else{
puts("No");
return 0;
}
}
}
puts("Yes");
return 0;
}

B. Average Superhero Gang Power

  • tags:brute force
  • (一开局就想了个假算法,wa了n发,楞是没想到O(n)暴力
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,k,m;
ll a[1000100];
ll sum[1000100];
//num为删除的个数
double calc(int num){
ll s;
if(num>0)
s = sum[n-1]-sum[num-1];
else s = sum[n-1];
s += min((m-num),(n-num)*k);
return (double)s/(n-num);
}
int main(){
scanf("%lld%lld%lld",&n,&k,&m);
for(int i=0;i<n;i++){
scanf("%lld",&a[i]);
}
sort(a,a+n);
sum[0] = a[0];
for(int i=1;i<n;i++)sum[i] = sum[i-1]+a[i];
double ans = 0;
//枚举剩余个数
for(int i=max(1ll,n-m);i<=n;i++){
ans = max(ans,calc(n-i));
}
printf("%.18f\n",ans);
return 0;
}

C. Creative Snap

  • 分治算法
  • 考虑区间[l,r],二分求出区间内复仇者数量num
    • 若num==0,则返回A
    • 否则
      • 若l==r,则返回B*num
      • 否则,返回:min(B*num*(r-l+1),calc(l,mid)+calc(mid+1,r))
  • 复杂度为:O(n*k*log(k))
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n,k,A,B;
ll a[100010];
ll calc(int l,int r){
ll num = upper_bound(a,a+k,r) - lower_bound(a,a+k,l);
if(num==0){
return A;
}
else {
if(r==l)return num*B;
ll mid = (l+r)/2;
return min(B*(r-l+1ll)*num,calc(l,mid)+calc(mid+1,r));
}
}
int main(){
scanf("%lld%lld%lld%lld",&n,&k,&A,&B);
for(int i=0;i<k;i++)
scanf("%lld",&a[i]);
sort(a,a+k);
ll ans = calc(1,1<<n);
cout<<ans<<endl;
return 0;
}

D. Destroy the Colony

  • 待补

E. Tree

  • 待补

最新文章

  1. HDU 5791 Two DP
  2. Android遇到的错误,运行时崩溃
  3. MySQL 错误代码和消息
  4. C语言基础:指针类型与指针和数组、字符串的关系
  5. MyEclipse 安装JRebel进行热部署
  6. n个骰子的点数
  7. java学习进制转换之查表法
  8. db file scattered read
  9. grid编辑后时间格式不对问题
  10. 拼多多大数据开发工程师SQL实战解析
  11. 使用POST下载文件
  12. placeholde属性在IE10以下浏览器上的兼容方案
  13. Netty学习笔记(一) 实现DISCARD服务
  14. HTML5中的input type为file控件限制上传文件类型及扩展
  15. Win2008R2+Apache+PHP+Tomcat配置
  16. js发送get 、post请求的方法简介
  17. BZOJ1036 [ZJOI2008]树的统计Count 树链剖分
  18. BZOJ.2229.[ZJOI2011]最小割(最小割树)
  19. SQL创建索引
  20. Kali Linux没有无线网卡?玩个锤纸~

热门文章

  1. [Xcode 实际操作]二、视图与手势-(8)UIView视图的纹理填充
  2. WKWebView简单使用
  3. centos 无界面 服务器 安装chrome部署chromedriver
  4. NOIP前计划
  5. Codeforces 1107F(dp)
  6. bzoj 4695: 最假女选手 &amp;&amp; Gorgeous Sequence HDU - 5306 &amp;&amp; (bzoj5312 冒险 || 小B的序列) &amp;&amp; bzoj4355: Play with sequence
  7. SpirngMVC-JSON
  8. JS中的关系操作符与自动转型
  9. Railroad UVALive - 4888 记忆化搜索
  10. Linux磁盘根目录满了问题解析