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. linux下mysql定时备份,数据保存周期一周

    以下脚本来自网络,版权归原作者所有(推荐放在夜间自动备份,用cron制定计划任务) crontab -e 0 3 * * * /var/erp/data/mysql_backup.sh #!/bin/ ...

  2. ubuntu下自动获取ip设置

    vi /etc/network/interfaces文件为如下内容 wq保存 重启网卡:sudo /etc/init.d/networking restart

  3. Appium,AirTest切换使用时,appium罢工之坑(1)

    由于一些元素不能定位,所以最近项目引用了Airtest 问题场景: case的开始使用appium,case执行过程中,切换到airtest操作元素,待执行完airtest相关步骤之后,后续使用app ...

  4. django中聚合aggregate和annotate GROUP BY的使用方法

    接触django已经很长时间了,但是使用QuerySet查询集的方式一直比较低端,只会使用filter/Q函数/exclude等方式来查询,数据量比较小的时候还可以,但是如果数据量很大,而且查询比较复 ...

  5. Centos7永久关闭防火墙

    Centos7永久关闭防火墙 查看防火墙状态: systemctl status firewalld.service 绿的running表示防火墙开启 执行关闭命令: systemctl stop f ...

  6. ctype.h头文件

    定义了一批C语言字符分类函数(C character classification functions),用于测试字符是否属于特定的字符类别,如字母字符.控制字符等等.既支持单字节(Byte)字符,也 ...

  7. [Python3 练习] 011 利用异常解题

    目录 函数式编程 Functional Programming 1. 简介 2. 函数 3. 匿名函数 3.1 lambda 表达式也称"匿名函数" 3.2 lambda 表达式的 ...

  8. git clone 报错 fatal: protocol '–https' is not supported 解决办法

    版本:git 2.22.0 系统:win7旗舰版 先把https去掉 再把https加上 神奇的事情出现了,这样就可以了. 很多人都说这样解决了,原因不知道. Administrator@BWE8QX ...

  9. 手写一个python迭代器

    分析 我们都知道一个可迭代对象可以通过iter()可以返回一个迭代器. 如果想要一个对象称为可迭代对象,即可以使用for,那么必须实现__iter __()方法. 在一个类的实例对象想要变成迭代器,就 ...

  10. leecode刷题(28)-- 二叉树的前序遍历

    leecode刷题(28)-- 二叉树的前序遍历 二叉树的前序遍历 给定一个二叉树,返回它的 前序 遍历. 示例: 输入: [1,null,2,3] 1 \ 2 / 3 输出: [1,2,3] 思路 ...