题目

传送门:QWQ

A:A - If at first you don't succeed...

分析:

按照题意模拟

代码:

#include <bits/stdc++.h>
using namespace std;
int main(){
int a,b,c,n;
scanf("%d%d%d%d",&a,&b,&c,&n); int ans=n-a-b+c;
if(a<c || b<c) ans=-;
if(ans>) printf("%d\n",ans);
else puts("-1"); }

B:B - Getting an A

 

分析:

显然把越小的改成5贡献越大。

代码:

#include <bits/stdc++.h>
using namespace std;
const int maxn=;
int a[maxn];
int main(){
int n;scanf("%d",&n);
for(int i=;i<=n;i++) scanf("%d",&a[i]);
sort(a+,a++n);
int sum=,ans=;for(int i=;i<=n;i++) sum+=a[i];
for(int i=;i<=n;i++){
// cout<<(double)(sum*1.0/n)<<endl;
if((double)(sum*1.0/n)>=4.5) break;
int k=-a[i]; ans++;
sum+=k;
}
printf("%d\n",ans);
}

C:C - Candies

分析:

大力二分

代码:

#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll n;
int ok(ll k){
ll sum=,x=n;
while(x>=){
if(x>=k) sum+=k;else sum+=x; x=max(x-k,-1ll); x-=x/;
}
// printf("---- %lld %lld\n",k,sum);
return sum>=(n+)/; }
int main(){
cin>>n;
ll l=,r=n+;
while(l+<r){
ll mid=l+r>>;
// cout<<l<<" "<<r<<endl; if(ok(mid)) r=mid;
else l=mid;
}
cout<<r;
}

D:D - Bishwock

 

分析:

按位从从左到右扫过去,能填进去就填进去

代码:

#include <bits/stdc++.h>
using namespace std;
const int maxn=;
char s[maxn], s2[maxn];
int main(){
scanf("%s%s",s+,s2+);
int n=strlen(s+);
int ans=;
s[]='X'; s2[]=='X';
for(int i=;i<=n;i++){
if(s[i]=='X') continue;
if(s2[i]=='' && s2[i-]==''){
s2[i]='X'; s2[i-]='X'; s[i]='X'; ans++;
// printf("%d 1\n",i);
continue;
}
if(s2[i]=='' && s2[i+]==''){
s2[i]='X'; s2[i+]='X'; s[i]='X'; ans++;
// printf("%d 2\n",i);
continue;
}
if(s[i+]=='' && s2[i]==''){
s2[i]='X'; s[i+]='X'; s[i]='X'; ans++;
// printf("%d 3\n",i);
continue;
}
if(s[i+]=='' && s2[i+]==''){
s2[i+]='X'; s[i+]='X'; s[i]='X'; ans++;
// printf("%d 3\n",i);
continue;
}
}
// printf("%s\n%s\n",s+1,s2+1);
printf("%d\n",ans); }

E:E - Bus Number

分析:

https://blog.csdn.net/ZscDst/article/details/80835561

官方题解做法。。。。。

代码:

//copy from https://blog.csdn.net/ZscDst/article/details/80835561

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int a[], vis[];
ll fac[];
set<string> s;
void split(string x, int *a)
{
for (int i = ; i < ; i++) a[i] = ;
for (char i: x) a[i-'']++;
}
ll getcount()//去重全排列
{
ll ans = fac[accumulate(a, a+, )];
for (int i = ; i < ; i++) ans /= fac[a[i]];
return ans;
}
ll getans(string x)
{
split(x, a);
for (int i = ; i < ; i++) if (vis[i] && !a[i]) return ;//比原来少了i数字
sort(x.begin(), x.end());
if (s.count(x)) return ;//x这种子集算过了
else s.insert(x); ll ans = getcount();
if (a[]) { a[]--; ans -= getcount(); }//减去前导0情况
return ans;
}
int main()
{
fac[] = ; for(int i = ; i < ; i++) fac[i] = fac[i-]*i;//计算阶乘
string n; cin >> n;
split(n, vis);
int k = n.size();
ll ans = ;
for (int i = ; i < (<<k); i++)//二进制枚举
{
string t;
for (int j = ; j < k; j++)
if (i&(<<j)) t += n[j];
ans += getans(t);
}
printf("%lld\n",ans);
return ;
}

【Codeforces】Codeforces Round #491 (Div. 2) (Contest 991)的更多相关文章

  1. 【Codeforces】Codeforces Round #492 (Div. 2) (Contest 996)

    题目 传送门:QWQ A:A - Hit the Lottery 分析: 大水题 模拟 代码: #include <bits/stdc++.h> using namespace std; ...

  2. 【转】Java HashMap 源码解析(好文章)

    ­ .fluid-width-video-wrapper { width: 100%; position: relative; padding: 0; } .fluid-width-video-wra ...

  3. 【BZOJ2754】喵星球上的点名(AC自动机)

    [BZOJ2754]喵星球上的点名(AC自动机) 题面 BZOJ 题解 友情提示:此题请不要在cogs上提交,它的数据有毒 对于点名串构建\(AC\)自动机 然后把名字丢进去进行匹配, 大力统计一下答 ...

  4. 【SPOJ】Distinct Substrings/New Distinct Substrings(后缀数组)

    [SPOJ]Distinct Substrings/New Distinct Substrings(后缀数组) 题面 Vjudge1 Vjudge2 题解 要求的是串的不同的子串个数 两道一模一样的题 ...

  5. 【BZOJ4071】八邻旁之桥(线段树)

    [BZOJ4071]八邻旁之桥(线段树) 题面 BZOJ权限题,洛谷链接 题解 既然\(k<=2\) 那么,突破口就在这里 分类讨论 ①\(k=1\) 这...不就是中位数吗.... 直接把所有 ...

  6. 【BZOJ4736】温暖会指引我们前行(Link-Cut Tree)

    [BZOJ4736]温暖会指引我们前行(Link-Cut Tree) ##题面 神TM题面是UOJ的 题解 LCT傻逼维护最大生成树 不会的可以去做一做魔法森林 #include<iostrea ...

  7. 【BZOJ5502】[GXOI/GZOI2019]与或和(单调栈)

    [BZOJ5502][GXOI/GZOI2019]与或和(单调栈) 题面 BZOJ 洛谷 题解 看到位运算就直接拆位,于是问题变成了求有多少个全\(0\)子矩阵和有多少个全\(1\)子矩阵. 这两个操 ...

  8. LuoguP3834 【模板】可持久化线段树 1(主席树)|| 离散化

    题目:[模板]可持久化线段树 1(主席树) 不知道说啥. #include<cstdio> #include<cstring> #include<iostream> ...

  9. 【BZOJ5138】[Usaco2017 Dec]Push a Box(强连通分量)

    [BZOJ5138][Usaco2017 Dec]Push a Box(强连通分量) 题面 BZOJ 洛谷 题解 这题是今天看到萝卜在做然后他一眼秒了,我太菜了不会做,所以就来做做. 首先看完题目,是 ...

随机推荐

  1. Android安装包apk文件在某些版本操作系统上安装解析包出错问题的解决办法

    当我们将Android升级功能的中的下载新版本apk文件存放在data/data/xxx.apk位置时,在有的些版本的手机中安装可能会出现安装包解析出错的问题,对于该问题的解决方案是提升该文件的权限. ...

  2. Python str 与 bytes 类型 之间的转换

    bytes:字节数组,通常用它可以描述 “一个字符串”,只不过该字符串是  “bytes类型”,所以容易与str类型混淆,他们二者之间的转换: https://blog.csdn.net/lanchu ...

  3. easyui combotree 异步树 前端写法js

    简要说下使用场景: combotree下拉框第一次加载时,请求一个接口,页面上展示顶层节点们(可以理解为最顶层的节点,比如所有的一级公司): 当点击其中一个节点前面的小三角展开时,再次请求服务器接口( ...

  4. STL标准库-hash

    技术在于交流.沟通,本文为博主原创文章转载请注明出处并保持作品的完整性 hash的结构图如下图 oject通过hashfunc转换成hashcode然后插入到相应篮子中 hash同rb_tree是一种 ...

  5. 浅谈Http1.0/Http1.1/Http2.0/Https

    HTTP 1.0 → HTTP 1.1 长连接 HTTP 1.1默认支持长连接,减少了TCP连接次数,节约开销. HTTP 1.0所保持的TCP每次只能处理一个请求,最典型的就是pipline管线化模 ...

  6. nginx默认的配置文件详解

    # For more information on configuration, see:# * Official English Documentation: http://nginx.org/en ...

  7. 在Windows中配置Rsync同步

    Rsync是一款不错的文件免费同步软件,可以镜像保存整个目录树和文件系统,同时保持原来文件的权限.时间.软硬链接.第一次同步时 rsync 会复制全部内容,下次只传输修改过的文件部分.传输数据过程中可 ...

  8. Linux运维学习笔记-目录知识点总结

    目录知识点总结: Note: 1.创建一个/server/scripts目录,用于存放脚本(命令:mkdir -p /server/scripts) 2.安装软件时,安装路径统一为/usr/local ...

  9. Visual C++2013 使用技巧

    对 Visual Studio 2013 的 IDE 不熟悉.刚用VS 中的 VC++ IDE 进行编程,一些东西用得少,或以后久了不用,怕又忘了.现在慢慢知道点,记录点,以备以后查阅. 1. 记编译 ...

  10. 替换国内yum源以及pip源

    因为一些原因,不论是网络还是啥啥啥的原因,国外的源访问时不时的很慢,这时候我们就可以将国外的源替换为国内源,提高下载速度. yum源替换 环境:centos7(如果你的发行版本不是这个,此方法不保证能 ...