【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 洛谷 题解 这题是今天看到萝卜在做然后他一眼秒了,我太菜了不会做,所以就来做做. 首先看完题目,是 ...
随机推荐
- BZOJ 1269 【AHOI2006】 文本编辑器
题目链接:文本编辑器 这道题没啥好说的,直接上\(Splay\)就行了,板子题…… 但是我某个地方忘了下放标记导致调了一晚上 听说有个东西叫\(rope\)可以直接过?然而我并不会 保存一发板子: # ...
- python 列表元素的筛选
color = ['Red', 'Green', 'White', 'Black', 'Pink', 'Yellow'] color = [x ,,)] print(color)
- [原][osgearth]osgearthElvation中的一帧
create tile key contains 获取tile上的临界值 这里先获取层数的切份(下图) 然后使用xmin,xmax,ymin,ymax获取tile的四个点 再通过geoextent获取 ...
- [原][译][osgearth]Model Source Drivers模型驱动源(OE官方文档翻译)
ModelSource 是一个能生成OpenSceneGraph节点的驱动(driver) osgEarth使用ModelSources显示矢量特征(feature)数据和加载和显示外部3d模型 Fe ...
- Angular i18n
Angular2中使用ngx-translate进行国际化http://blog.csdn.net/u014291497/article/details/61233033 在 Angular 项目中添 ...
- JAVA异常处理机制分析(上)
过去曾有一段时间关于java的异常处理机制曾经让我吃尽苦头,异常机制看似简单,原理,用法也仅仅如此,但是,用起来或是在使用一些框架的时候总会因为使用不当,造成灾难性后果. jdk异常处理机制 ...
- ORA-12505: TNS: 监听程序当前无法识别连接描述符中所给出的SID等错误解决方法
程序连接orarle报ORA-12505错误 一.异常{ ORA-12505, TNS:listener does not currently know of SID given in connect ...
- baseCss/resetCss(转)
原文链接:https://github.com/hangyangws/baseCss#basecss baseCss 意义 统一各个浏览器差异.统一团队开发起始标准.弥补浏览器的“缺点”.提供频繁使用 ...
- 先对结果集排序然后做update、delete操作
--先排序然后删除第n条数据delete from scott.emp where empno in (select empno from (select * ...
- 056——VUE中vue-router之路由参数的验证处理保存路由安全
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...