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 车牌号组合数学计算的更多相关文章

  1. 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- ...

  2. 基于TensorFlow的车牌号识别系统

    简介 过去几周我一直在涉足深度学习领域,尤其是卷积神经网络模型.最近,谷歌围绕街景多位数字识别技术发布了一篇不错的paper.该文章描述了一个用于提取街景门牌号的单个端到端神经网络系统.然后,作者阐述 ...

  3. 【代码笔记】iOS-验证手机号,邮箱,车牌号是否合法

    一,代码. - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view. ...

  4. 按要求编写Java应用程序。 (1)创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)、减速(车速自减)、修改车牌号,查询车的载重量。 编写两个构造方法:一个没有形参,在方法中将车牌号设置“XX1234”,速 度设置为100,载重量设置为100;另一个能为对象的所有属性赋值; (2)创建主类: 在主类中创建两个机动车对象。 创建第

    package com.hanqi.test; public class jidongche { private String chepaihao;//车牌号 private int speed;// ...

  5. Android中手机号、车牌号正则表达式

    手机号 手机号的号段说明转载自:国内手机号码的正则表达式|蜗牛的积累 手机名称有GSM:表示只支持中国联通或者中国移动2G号段(130.131.132.134.135.136.137.138.139. ...

  6. 车牌号对应归属地及城市JSON带简码

    车牌号对应归属地及城市JSON带简码 car_city.json [ { "code": "冀A", "city": "石家庄&q ...

  7. (1)创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)、减速(车速自减)、修改车牌号,查询车的载重量。 编写两个构造方法:一个没有形参,在方法中将车牌号设置“XX1234”,速 度设置为100,载重量设置为100;另一个能为对象的所有属性赋值; (2)创建主类: 在主类中创建两个机动车对象。

    package a; public class Jidongche { private String chepaihao; private int chesu; private double zaiz ...

  8. vue实战 - 车牌号校验和银行校验

    在看这篇文章之前,我建议大伙可以去把项目demo拉到本地看看.如果觉得写得不好,可以一起提提issues,一起维护.或者大伙有刚需,可以留言,后期会不断完善. 使用方法: git clone http ...

  9. python的车牌号的检测

    自己总结一下,从网上找到的关于车牌号的识别的一些博文.https://www.jianshu.com/p/fcfbd3131b84 https://www.cnblogs.com/do-hardwor ...

随机推荐

  1. axios在Vue中的简单应用(一)

    1.安装axios: npm install --save axios vue-axios 2.安装qs: qs.stringify(data)可以解决data数据格式问题 npm install - ...

  2. @Results注解使用方法

    @SelectProvider(type = HospitalSqlGenerator.class, method = "queryHospitalData") @Results( ...

  3. 调用redis封装好的JedisUtils接口实现锁库

    1.在进行数据库操作的方法前先定义一个key值,并添加一个能区别每个key的标识 2.首先判断如果定义的key值存在的话,就直接return方法,如果不存在的话,就把key值放在jedisutil中, ...

  4. 04-再探JavaScript

    一. DOM介绍 1. 什么是DOM? DOM:文档对象模型.DOM 为文档提供了结构化表示,并定义了如何通过脚本来访问文档结构. 目的其实就是为了能让js操作html元素而制定的一个规范. DOM就 ...

  5. 1.2.2 OSI参考模型 上

    一.HCNA网络技术学习指南 为了实现网络的互通及各种各样的网络应用,网络设备需要运行各种各样的协议已实现各种各样具体的功能.面对各种各样且数量繁多的功能,我们可以从网络架构的角度,引入功能分层的模型 ...

  6. confluent部署:

    confluent介绍https://www.cnblogs.com/dadadechengzi/p/9506964.html kafka connect:https://www.cnblogs.co ...

  7. vc_redist x64 或者x86下载地址

    https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads 微软的东西,果然还是人 ...

  8. JavaScript使用readAsDataURL读取图像文件

    JavaScript使用readAsDataURL读取图像文件 FileReader对象的readAsDataURL方法可以将读取到的文件编码成Data URL.Data URL是一项特殊的技术,可以 ...

  9. linux增加swap大小

    参考自:https://blog.csdn.net/ssrmygod/article/details/70157716 我在centos6.5上照着操作成功了首先查一下目前swap的大小: [root ...

  10. 2.bash术语定义

    2.术语定义POSIX:基于Unix的一系列操作系统可移植性的标准.Bash主要和POSIX标准第1003.1号中的<Shell和使用工具>有关.空白符:一个空格或者制表符.内部命令:在s ...