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. 使用构造器模式动态构建Map作为mybatis的查询条件

    import com.alibaba.fastjson.JSON; import com.fasterxml.jackson.databind.ObjectMapper; import com.fas ...

  2. three中的着色器示例

    其实在3D引擎/库的帮助下,我们做webgl开发的难度已经很大大地降低了,熟悉相关API的话,开发一个简单的3D程序可以说是很轻松的事情. 在我看来,webgl的核心就是着色器(顶点着色器.片元着色器 ...

  3. ES5与ES6常用语法教程之 ④展开运算符...在数组和对象中的作用

    展开操作符(spread) 展开运算符(spread operator)允许一个表达式在某处展开.展开运算符在多个参数(用于函数调用)或多个元素(用于数组字面量)或者多个变量(用于解构赋值)的地方可以 ...

  4. Linux-把任务放到后台

    公司用的服务器,只能ssh远程操作,每天都会自动退出账户,不知道怎么回事儿,很郁闷.所以每天早起重新登录后发现进程已经关闭了,因为你运行的任务是和terminal关联在一起的,terminal关闭后, ...

  5. python matplotlib 多图像排列显示

    用OpenCV和matplotlib实现多图排列,代码如下: import cv2 import matplotlib.pyplot as plt img = cv2.imread('C:\\User ...

  6. finereport 通过条件弹出 alert进行提示

    function convertDateFromString(dateString) { if (dateString) { var date = new Date(dateString.replac ...

  7. 【VS开发】【DSP开发】浅谈Linux PCI设备驱动(一)

    要弄清楚Linux PCI设备驱动,首先要明白,所谓的Linux PCI设备驱动实际包括Linux PCI设备驱动和设备本身驱动两部分.不知道读者理不理解这句话,本人觉得这句话很重要,对于PCI.US ...

  8. 熟悉GitHub、VS工具的使用(《构建之法》第二次作业)

    GIT地址 https://github.com/slothph GIT用户名 slothph 学号后五位    62323 博客地址 https://www.cnblogs.com/slothph/ ...

  9. 关于前端JS判断字符串是否包含另外一个字符串的方法总结

    RegExp 对象方法 test() var str = "abcd"; var reg = RegExp(/d/); console.log(reg.test(str)); // ...

  10. jQuery 实现图片放大两种方式

    jQuery 实现图片放大两种方式 一.利用css样式表实现,多用于后台显示 1.这种比较简单,利用dom元素的hover实现样式切换 <style> img{ cursor: point ...