题目

传送门: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. Qt5发布错误01

    1.Qt5+VS2013兼容XP方法 (http://www.qtcn.org/bbs/apps.php?q=diary&a=detail&did=2047&uid=15538 ...

  2. [转] VR-FORCES 介绍

    转自:https://sanwen8.cn/p/1e6GQeK.html 今天给各位介绍的仿真平台是VR-Forces.VR-Forces是新加坡公司MAK的产品,前身是美国公司.在仿真平台领域里面, ...

  3. oracle: sql语句报ora-01461/ora-00911错误

    oracle: sql语句报ora-01461/ora-00911错误 ora-00911:sql语句中可能含有特殊字符,或者sql语句中不能用";"分号结尾. sql语句报ora ...

  4. [图床神器]Windows下的图片上传工具MPic

    最近用hexo在github上搭建了一个静态博客,开始几天用起来感觉还挺好的,但是用了些天就觉得每次写文章插入图片就非常麻烦,而且如果图片多了的话上传和访问就很慢了.后来网上看了下发现mac下有款ip ...

  5. Tornado的cookie过期问题

    首先,web应用程序是使用HTTP协议进行数据传输,因为HTTP协议是无状态的,所以一旦提交数据完成后,客户端和服务器端的连接就会被关闭,再次进行数据的交换就得重新建立新的连接,那么,有个问题就是服务 ...

  6. @RequestParam注解的作用及用法

    最简单的两种写法,在写接口时:加或不加@RequestParam注解的区别 第一种写法参数为非必传,第二种写法参数为必传.参数名为userId 第二种写法可以通过@RequestParam(requi ...

  7. 【hive】分组求排名

    分组求排名 相信好多使用Mysql的用户一定对分组求排名的需求感到发怵. 但是在hive或者oracle来说就能简单实现. 采用窗口函数:rank() over() / row_number() ov ...

  8. poj 3744 概率dp 快速幂 注意排序 难度:2

    /* Scout YYF I Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 5304   Accepted: 1455 De ...

  9. centos6 Nginx+Tomcat负载均衡配置

    一.Nginx简介 Nginx是一个web服务器也可以用来做负载均衡及反向代理使用,目前使用最多的就是负载均衡,具体简介我就不介绍了百度一下有很多,下面直接进入安装步骤 二.Nginx安装 1.下载N ...

  10. 折叠纸片PFold.js

    PFold.js是一款折叠纸片插件,支持定义折叠纸牌数量.折叠动画效果.折叠方向,而且还支持折叠结束后回调方法. 在线实例 效果一 效果二 效果三 使用方法 <div id="uc-c ...