【Codeforces】Codeforces Round #491 (Div. 2) (Contest 991)
题目
传送门: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)的更多相关文章
- 【Codeforces】Codeforces Round #492 (Div. 2) (Contest 996)
题目 传送门:QWQ A:A - Hit the Lottery 分析: 大水题 模拟 代码: #include <bits/stdc++.h> using namespace std; ...
- 【转】Java HashMap 源码解析(好文章)
.fluid-width-video-wrapper { width: 100%; position: relative; padding: 0; } .fluid-width-video-wra ...
- 【BZOJ2754】喵星球上的点名(AC自动机)
[BZOJ2754]喵星球上的点名(AC自动机) 题面 BZOJ 题解 友情提示:此题请不要在cogs上提交,它的数据有毒 对于点名串构建\(AC\)自动机 然后把名字丢进去进行匹配, 大力统计一下答 ...
- 【SPOJ】Distinct Substrings/New Distinct Substrings(后缀数组)
[SPOJ]Distinct Substrings/New Distinct Substrings(后缀数组) 题面 Vjudge1 Vjudge2 题解 要求的是串的不同的子串个数 两道一模一样的题 ...
- 【BZOJ4071】八邻旁之桥(线段树)
[BZOJ4071]八邻旁之桥(线段树) 题面 BZOJ权限题,洛谷链接 题解 既然\(k<=2\) 那么,突破口就在这里 分类讨论 ①\(k=1\) 这...不就是中位数吗.... 直接把所有 ...
- 【BZOJ4736】温暖会指引我们前行(Link-Cut Tree)
[BZOJ4736]温暖会指引我们前行(Link-Cut Tree) ##题面 神TM题面是UOJ的 题解 LCT傻逼维护最大生成树 不会的可以去做一做魔法森林 #include<iostrea ...
- 【BZOJ5502】[GXOI/GZOI2019]与或和(单调栈)
[BZOJ5502][GXOI/GZOI2019]与或和(单调栈) 题面 BZOJ 洛谷 题解 看到位运算就直接拆位,于是问题变成了求有多少个全\(0\)子矩阵和有多少个全\(1\)子矩阵. 这两个操 ...
- LuoguP3834 【模板】可持久化线段树 1(主席树)|| 离散化
题目:[模板]可持久化线段树 1(主席树) 不知道说啥. #include<cstdio> #include<cstring> #include<iostream> ...
- 【BZOJ5138】[Usaco2017 Dec]Push a Box(强连通分量)
[BZOJ5138][Usaco2017 Dec]Push a Box(强连通分量) 题面 BZOJ 洛谷 题解 这题是今天看到萝卜在做然后他一眼秒了,我太菜了不会做,所以就来做做. 首先看完题目,是 ...
随机推荐
- 更改CentOS7登录画面的分辨率
设置成用VNC Viewer去连接虚拟机的CentOS7 , 可是分辨率都得等登录了才能生效. 登录画面显示时,分辨率老大了. 找到了下面的文章 , 把 home/<user>/.conf ...
- Hive 建外链表到 Hbase(分内部表、外部表两种方式)
一. Hive 建内部表,链到hbase :特点:Hive drop表后,Hbase 表同步删除 drop table if exists hbase_kimbo_test1;CREATE TABLE ...
- mybatis 环境搭建和基本说明
mybatis介绍就不多提了,直接步入正题. 先准备好eclipse和MySQL,然后先看一下目录结构 文件和类很少,所以mybatis的搭建是非常简单的,如搭建中遇到问题可以先参考文档最后一部分的综 ...
- Rails 5 Test Prescriptions 第14章 Testing Exteranl Services(中断。)
external testing strategy ✅ the service integration test✅ introduce VCR✅ Client Unit Tests ❌ Why an ...
- Manacher练习
看这篇博客学了下Manacher, 讲的很好, 但他的板子写错了.. https://www.cnblogs.com/Lyush/p/3221503.html 练习1 hdu 3068最长回文 板子题 ...
- Linux命令详解-type
type命令用来显示指定命令的类型. 一个命令的类型可以是如下之一 alias 别名 keyword 关键字,Shell保留字 function 函数,Shell函数 ...
- 【css】 文本超出2行显示省略号
首先,要知道css的三条属性. overflow:hidden; //超出的文本隐藏 text-overflow:ellipsis; //溢出用省略号显示 white-space:nowrap; // ...
- linux下redis的安装及配置启动
linux下redis的安装及配置启动 标签: redisnosql 2014-10-24 14:04 19732人阅读 评论(0) 收藏 举报 分类: 数据与性能(41) wget http:/ ...
- Android 遍历全国的地区二(获取天气)
根据上次的内容 1. 界面布局 weather_layout.xml <LinearLayout xmlns:android="http://schemas.android.com/a ...
- 在ubuntu16中部署Django使用memcached作为缓存
Django支持很多缓存系统,如 文件系统缓存. 数据库缓存. 内存缓存(Memcached),其中,Memcached是最快的,没有之一,是绝配.因为所有的缓存数据都放在内存,没有了IO延迟,也没有 ...