Codeforces 991 车牌号组合数学计算
A
/*Huyyt*/
#include<bits/stdc++.h>
#define mem(a,b) memset(a,b,sizeof(a))
#define pb push_back
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int mod = 1e9 + ;
const int gakki = + + + + 1e9;
const int MAXN = 3e5 + , MAXM = 6e6 + ;
/*int to[MAXM << 1], nxt[MAXM << 1], Head[MAXN], tot = 1;
inline void addedge(int u, int v, ll val)
{
to[++tot] = v;
value[tot] = val;
nxt[tot] = Head[u];
Head[u] = tot;
}*/
int main()
{
ios_base::sync_with_stdio();
cin.tie();
int a, b, c, n;
cin >> a >> b >> c >> n;
if (max(c, max(a, b)) > n)
{
cout << - << endl;
return ;
}
if (c > min(a, b))
{
cout << - << endl;
return ;
}
if (n - a - b + c < )
{
cout << - << endl;
return ;
}
cout << n - a - b + c << endl;
return ;
}
B
*10后就不会有精度问题了
/*Huyyt*/
#include<bits/stdc++.h>
#define mem(a,b) memset(a,b,sizeof(a))
#define pb push_back
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int mod = 1e9 + ;
const int gakki = + + + + 1e9;
const int MAXN = 3e5 + , MAXM = 6e6 + ;
/*int to[MAXM << 1], nxt[MAXM << 1], Head[MAXN], tot = 1;
inline void addedge(int u, int v, ll val)
{
to[++tot] = v;
value[tot] = val;
nxt[tot] = Head[u];
Head[u] = tot;
}*/
int num[];
priority_queue<int, vector<int>, greater<int> > que;
int main()
{
ios_base::sync_with_stdio();
cin.tie();
int n;
cin >> n;
int sum = ;
for (int i = ; i <= n; i++)
{
cin >> num[i];
num[i] = num[i] * ;
que.push(num[i]);
sum += num[i];
}
int level = * n;
int ans = ;
while (sum < level)
{
sum += - que.top();
que.pop();
ans++;
}
cout << ans << endl;
return ;
}
C
一眼二分
/*Huyyt*/
#include<bits/stdc++.h>
#define mem(a,b) memset(a,b,sizeof(a))
#define pb push_back
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int mod = 1e9 + ;
const int gakki = + + + + 1e9;
const int MAXN = 3e5 + , MAXM = 6e6 + ;
/*int to[MAXM << 1], nxt[MAXM << 1], Head[MAXN], tot = 1;
inline void addedge(int u, int v, ll val)
{
to[++tot] = v;
value[tot] = val;
nxt[tot] = Head[u];
Head[u] = tot;
}*/
int num[];
priority_queue<int, vector<int>, greater<int> > que;
ll n;
ll check(ll x)
{
ll sum = ;
ll now = n;
while (now > )
{
ll duce = min(x, now);
sum += duce;
now -= duce;
now -= now / ;
}
return sum;
}
int main()
{
ios_base::sync_with_stdio();
cin.tie();
cin >> n;
ll aim = n / + n % ;
ll l = , r = * n;
ll mid;
while (l < r - )
{
mid = (l + r) / ;
if (check(mid) >= aim)
{
r = mid;
}
else
{
l = mid;
}
}
cout << r << endl;
return ;
}
D
DP或者贪心模拟即可
/*Huyyt*/
#include<bits/stdc++.h>
#define mem(a,b) memset(a,b,sizeof(a))
#define pb push_back
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int mod = 1e9 + ;
const int gakki = + + + + 1e9;
const int MAXN = 3e5 + , MAXM = 6e6 + ;
/*int to[MAXM << 1], nxt[MAXM << 1], Head[MAXN], tot = 1;
inline void addedge(int u, int v, ll val)
{
to[++tot] = v;
value[tot] = val;
nxt[tot] = Head[u];
Head[u] = tot;
}*/
char f[][];
char s[][];
string ch[];
int n;
int ans = ;
int main()
{
ios_base::sync_with_stdio();
cin.tie();
for (int i = ; i <= ; i++)
{
cin >> ch[i];
n = ch[i].size();
for (int j = ; j < n; j++)
{
f[i][j + ] = ch[i][j];
}
}
for (int i = ; i <= ; i++)
{
for (int j = ; j <= n; j++)
{
s[i][j] = f[i][j];
}
}
int sumnow;
for (int i = ; i <= n - ; i++)
{
sumnow = ;
for (int j = ; j <= ; j++)
{
for (int k = i; k <= i + ; k++)
{
if (s[j][k] == '')
{
sumnow++;
}
}
}
if (sumnow >= )
{
ans++;
for (int j = ; j <= ; j++)
{
for (int k = i; k <= i + ; k++)
{
if (s[j][k] == '')
{
s[j][k] = 'X';
}
}
}
if (sumnow == )
{
s[][i + ] = '';
}
}
}
cout << ans << endl;
return ;
}
E
题意:
给你一个最多18位的数 你可以任意排列或者删除某个数 但是出现过的数至少要有一个且不能有前导零
问你有几种方案
解:
统计下每个数的个数 然后DFS一下算下答案即可
/*Huyyt*/
#include<bits/stdc++.h>
#define mem(a,b) memset(a,b,sizeof(a))
#define pb push_back
using namespace std;
typedef long long ll;
typedef unsigned long long ull;
const int mod = 1e9 + ;
const int gakki = + + + + 1e9;
const int MAXN = 5e2 + , MAXM = 6e6 + ;
/*int to[MAXM << 1], nxt[MAXM << 1], Head[MAXN], tot = 1;
inline void addedge(int u, int v, ll val)
{
to[++tot] = v;
value[tot] = val;
nxt[tot] = Head[u];
Head[u] = tot;
}*/
int num[MAXN];
int nownum[MAXN];
ll anser = ;
ll facnum[MAXN];
void init()
{
facnum[] = ;
for (int i = ; i <= ; i++)
{
facnum[i] = i * facnum[i - ];
}
}
ll calans ()
{
ll ansnow = ;
for (int i = ; i <= ; i++)
{
ansnow += nownum[i];
}
ansnow = facnum[ansnow];
for (int i = ; i <= ; i++)
{
ansnow /= facnum[nownum[i]];
}
return ansnow;
}
void getans (int x)
{
if (x > )
{
anser += calans();
if (nownum[] > )
{
nownum[]--;
anser -= calans();
nownum[]++;
}
return ;
}
if (num[x])
{
for (nownum[x] = ; nownum[x] <= num[x]; nownum[x]++)
{
getans(x + );
} }
else
{
getans(x + );
}
}
int main ()
{
ios_base::sync_with_stdio();
cin.tie();
init();
ll pop;
cin >> pop;
while (pop > )
{
num[pop % ]++;
pop /= ;
}
getans();
cout << anser << endl;
return ;
}
Codeforces 991 车牌号组合数学计算的更多相关文章
- iOS手机号,身份证,车牌号正则表达式
1.手机号判断,根据维基百科2016年6月修订的段号判断 是否是手机号 /** 手机号码 13[0-9],14[5|7|9],15[0-3],15[5-9],17[0|1|3|5|6|8],18[0- ...
- 基于TensorFlow的车牌号识别系统
简介 过去几周我一直在涉足深度学习领域,尤其是卷积神经网络模型.最近,谷歌围绕街景多位数字识别技术发布了一篇不错的paper.该文章描述了一个用于提取街景门牌号的单个端到端神经网络系统.然后,作者阐述 ...
- 【代码笔记】iOS-验证手机号,邮箱,车牌号是否合法
一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. ...
- 按要求编写Java应用程序。 (1)创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)、减速(车速自减)、修改车牌号,查询车的载重量。 编写两个构造方法:一个没有形参,在方法中将车牌号设置“XX1234”,速 度设置为100,载重量设置为100;另一个能为对象的所有属性赋值; (2)创建主类: 在主类中创建两个机动车对象。 创建第
package com.hanqi.test; public class jidongche { private String chepaihao;//车牌号 private int speed;// ...
- Android中手机号、车牌号正则表达式
手机号 手机号的号段说明转载自:国内手机号码的正则表达式|蜗牛的积累 手机名称有GSM:表示只支持中国联通或者中国移动2G号段(130.131.132.134.135.136.137.138.139. ...
- 车牌号对应归属地及城市JSON带简码
车牌号对应归属地及城市JSON带简码 car_city.json [ { "code": "冀A", "city": "石家庄&q ...
- (1)创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)、减速(车速自减)、修改车牌号,查询车的载重量。 编写两个构造方法:一个没有形参,在方法中将车牌号设置“XX1234”,速 度设置为100,载重量设置为100;另一个能为对象的所有属性赋值; (2)创建主类: 在主类中创建两个机动车对象。
package a; public class Jidongche { private String chepaihao; private int chesu; private double zaiz ...
- vue实战 - 车牌号校验和银行校验
在看这篇文章之前,我建议大伙可以去把项目demo拉到本地看看.如果觉得写得不好,可以一起提提issues,一起维护.或者大伙有刚需,可以留言,后期会不断完善. 使用方法: git clone http ...
- python的车牌号的检测
自己总结一下,从网上找到的关于车牌号的识别的一些博文.https://www.jianshu.com/p/fcfbd3131b84 https://www.cnblogs.com/do-hardwor ...
随机推荐
- 【转】HBASE Region in Transition issue on Master UI
[From]https://community.hortonworks.com/content/supportkb/244808/hbase-region-in-transition-issue-on ...
- Matlab中的eig函数和Opecv中eigen()函数的区别
奇异值分解的理论参见下面的链接 http://www.cnblogs.com/pinard/p/6251584.html https://blog.csdn.net/shenziheng1/artic ...
- 【Lua程序设计第四版练习题答案】ch01 Lua语言入门
联系1.1: 运行阶乘的示例并观察,如果输入负数,程序会出现什么问题?试着修改代码来解决问题. -- 定义一个计算阶乘的函数 function fact (n) if n == 0 then re ...
- IE11兼容IE8的设置
我们在使用ie11浏览器的时候,有些网站的兼容性不是太好,这个时候就要设置下ie11的兼容性了.那么ie11浏览器怎么设置兼容IE8呢?下面就让小编给大家介绍一下吧. 首先我们打开电脑里面的ie11浏 ...
- 华为HCNA乱学Round 5:华为交换机基础
- 【Python开发】python集成开发环境IDE搭建
http://blog.csdn.net/pipisorry/article/details/39854707 使用的系统及软件 Ubuntu / windows Python 2.7 / pytho ...
- 针对yarn的8088端口攻击
参考: https://www.wangbokun.com/%E8%BF%90%E7%BB%B4/2019/09/02/%E6%8C%96%E7%9F%BF%E7%97%85%E6%AF%92.htm ...
- Asteroid Collision
We are given an array asteroids of integers representing asteroids in a row. For each asteroid, the ...
- 【监控实践】【4.4】使用DMV和函数监控数据库状态和资源使用
1.查看当前实例运行进程 -- 核心DMV.函数.系统SP:/* 所有进程请求:sys.dm_exec_requests 所有进程与连接:sys.sysprocesses 系统函数,查看sql:sys ...
- Spring 最常用的 7 大类注解,史上最强整理!
随着技术的更新迭代,Java5.0开始支持注解.而作为java中的领军框架spring,自从更新了2.5版本之后也开始慢慢舍弃xml配置,更多使用注解来控制spring框架. 而spring的的注解那 ...