[hihocoder][Offer收割]编程练习赛62
方向
#pragma comment(linker, "/STACK:102400000,102400000")
#ifndef ONLINE_JUDGE
#include "stdafx.h"
#else
#include<bits/stdc++.h>
#endif
using namespace std;
typedef long long lint;
typedef vector<int> VI;
typedef pair<int, int> PII;
typedef queue<int> QI;
typedef map<int, int> MII; void makedata() {
freopen("input.txt", "w", stdout);
fclose(stdout);
}
int min_(int x, int y) {
if (fabs(x) == fabs(y)) return fabs(x);
return fabs(x) < fabs(y) ? x : y;
}
int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
#endif
//makedata();
std::ios::sync_with_stdio(), cin.tie();
int a, b, x, y;
cin >> a >> b;
x = b - a;
if (x < ) x += ;
y = x - ;
cout << min_(x, y) << endl;
return ;
}
被遗忘的整数
a*h=(∑ai / n)/(∑(1/ai)),而n*(∑(1/ai))=(∑ai / n),所以n=a*h
#pragma comment(linker, "/STACK:102400000,102400000")
#ifndef ONLINE_JUDGE
#include "stdafx.h"
#else
#include<bits/stdc++.h>
#endif
using namespace std;
typedef long long lint;
typedef vector<int> VI;
typedef pair<int, int> PII;
typedef queue<int> QI;
typedef map<int, int> MII; void makedata() {
freopen("input.txt", "w", stdout);
fclose(stdout);
}
int min_(int x, int y) {
if (fabs(x) == fabs(y)) return fabs(x);
return fabs(x) < fabs(y) ? x : y;
}
int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
#endif
//makedata();
std::ios::sync_with_stdio(), cin.tie();
int a, b;
cin >> a >> b;
cout << a*b << endl;
return ;
}
金额组合
#pragma comment(linker, "/STACK:102400000,102400000")
#ifndef ONLINE_JUDGE
#include "stdafx.h"
#else
#include<bits/stdc++.h>
#endif
using namespace std;
typedef long long lint;
typedef vector<int> VI;
typedef pair<int, int> PII;
typedef queue<int> QI;
typedef map<int, int> MII; void makedata() {
freopen("input.txt", "w", stdout);
fclose(stdout);
} int n;
lint c;
bool f[];
int s[]; int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
#endif
//makedata();
std::ios::sync_with_stdio(), cin.tie();
memset(f, false, sizeof(f));
cin >> n >> c;
lint x;
for (int i = ; i < n; i++) {
cin >> x;
for (int j = ; j < ; j++) {
if (x == (1LL << j)) f[j] = true;
}
}
s[] = f[] ? : ;
for (int i = ; i < ; i++) s[i] = s[i - ] + (f[i] ? : );
lint ans = ;
for (int i = ; i >= ; i--) {
if (c & (1LL << i)) {
if (i > ) ans += (1LL << s[i - ]);
else ans += ;
if (!f[i]) break;
}
}
bool ok = true;
for (int i = ; i >= ; i--) {
if (c & (1LL << i) && (!f[i])) ok = false;
}
if (ok) ans++;
ans--;
cout << ans << endl;
return ;
}
/*
1010
----
1000
0100
0001
----
1000
0100
0001
0101
0000
1001
*/
数字组合
#pragma comment(linker, "/STACK:102400000,102400000")
#ifndef ONLINE_JUDGE
#include "stdafx.h"
#else
#include<bits/stdc++.h>
#endif
using namespace std;
typedef long long lint;
typedef vector<int> VI;
typedef pair<int, int> PII;
typedef queue<int> QI;
typedef map<int, int> MII; void makedata() {
freopen("input.txt", "w", stdout);
fclose(stdout);
} VI G[];
int cnt[];
int n, k;
int s0, c1;
int max_() {
for (int i = ; i >= ; i--) {
if (cnt[i]) {
cnt[i]--;
n--;
return i;
}
}
}
int min_() {
for (int i = ; i <= ; i++) {
if (cnt[i]) {
cnt[i]--;
n--;
return i;
}
}
}
void work(int l, int r, int p) {
if (p + == s0) return;
int ll;
for (int i = l; i <= r; i++) {
if (G[i][p] < G[r][p]) {
while (G[i].size() < s0) G[i].push_back(max_());
} else {
ll = i;
break;
}
}
for (int i = ll; i <= r; i++) G[i].push_back(min_());
work(ll, r, p + );
} int main() {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
#endif
//makedata();
std::ios::sync_with_stdio(), cin.tie();
string s;
cin >> n >> k;
cin >> s;
int m = s.length();
for (int i = ; i < m; i++) cnt[s[i] - '']++;
s0 = n / k + , c1 = n % k;
for (int i = ; i < k - c1; i++) G[i].push_back();
for (int i = k - c1; i < k; i++) G[i].push_back(min_());
work(, k - , );
for (int i = ; i < G[k - ].size(); i++) {
if (G[k - ][i] == ) continue;
else cout << G[k - ][i];
}
return ;
}
/*
x 1 1 1 1
44777
*/
[hihocoder][Offer收割]编程练习赛62的更多相关文章
- hihocoder [Offer收割]编程练习赛4
描述 最近天气炎热,小Ho天天宅在家里叫外卖.他常吃的一家餐馆一共有N道菜品,价格分别是A1, A2, ... AN元.并且如果消费总计满X元,还能享受优惠.小Ho是一个不薅羊毛不舒服斯基的人,他希望 ...
- hihocoder [Offer收割]编程练习赛61
[Offer收割]编程练习赛61 A:最小排列 给定一个长度为m的序列b[1..m],再给定一个n,求一个字典序最小的1~n的排列A,使得b是A的子序列. 贪心即可,b是A的子序列,把不在b中的元素, ...
- ACM学习历程—Hihocoder [Offer收割]编程练习赛1
比赛链接:http://hihocoder.com/contest/hihointerview3/problem/1 大概有一个月没怎么打算法了.这一场的前一场BC,也打的不是很好.本来Div1的A和 ...
- hihocoder offer收割编程练习赛8 C 数组分拆
思路:(引自bfsoyc的回答:http://hihocoder.com/discuss/question/4160) 动态规划.状态dp[i]表示 前i个数的合法的方案数,转移是 dp[i] = s ...
- hihocoder [Offer收割]编程练习赛18 C 最美和弦(dp)
题目链接:http://hihocoder.com/problemset/problem/1532 题解:一道基础的dp,设dp[i][j][k][l]表示处理到第几个数,当前是哪个和弦错了几次初始x ...
- hihoCoder [Offer收割]编程练习赛3 D子矩阵求和
子矩阵求和 http://hihocoder.com/discuss/question/3005 声明一下: n是和x一起的,m是和y一起的 x是横着的,y是纵着的,x往右为正,y往下为正 (非常反常 ...
- hihocoder [Offer收割]编程练习赛52 D 部门聚会
看了题目的讨论才会做的 首先一点,算每条边(u, v)对于n*(n+1)/2种[l, r]组合的贡献 正着算不如反着算 哪些[l, r]的组合没有包含这条边(u, v)呢 这个很好算 只需要统计u这半 ...
- hihocoder [Offer收割]编程练习赛14
A.小Hi和小Ho的礼物 谜之第1题,明明是第1题AC率比C还要低.题目是求在n个不同重量袋子选4袋,2袋给A,2袋给B,使2人获得重量相同,求问方案数. 我也是一脸懵b...o(n2)暴力枚举发现把 ...
- hihocoder [Offer收割]编程练习赛8
第一次做这种比赛,被自己坑的好惨... A.这道题的关键其实是如果有k和n满足kD+F>nL>kD则不能走无限远,分支看似难整理,其实比较简单,F>L根本就不用算了,明摆着就是Bsi ...
随机推荐
- CSS3制作404立体字体
CSS3制作404立体字体页面效果 鼠标移动上去,背景色变白. 动态效果: .demo p:first-child span:hover { text-shadow:0px ...
- Java基础学习总结(87)——坚持写Java等技术类博客的好处
1.加深对技术点的理解 每天写博客,可以加深对技术点的理解,假如工作中,对某个技术点运用的不熟,当你通过博客的形式写出来,这个过程中,遇到不懂的知识点,你就会查阅相关的资料,弄明白他. 2.自己日后用 ...
- HDU 1249 三角形的分割
可以将三角形的三条边一条一条加进图形中观察 假设添加第n个三角形 前n-1个三角形将区域划分为sum[n-1] 第n个三角形每条边最多能经过前n-1个三角形每条三角形的两条边 , 一条边切完增加了 2 ...
- ACM数论常用知识完全解读
此版本纯属扯淡....... 一个一个来起.
- Switch Game
Problem Description There are many lamps in a line. All of them are off at first. A series of operat ...
- 洛谷——P1082 同余方程
P1082 同余方程 题目描述 求关于 x 的同余方程 ax ≡ 1 (mod b)的最小正整数解. 输入输出格式 输入格式: 输入只有一行,包含两个正整数 a, b,用一个空格隔开. 输出格式: 输 ...
- - > 动规讲解基础讲解四——最大子段和问题
给出一个整数数组a(正负数都有),如何找出一个连续子数组(可以一个都不取,那么结果为0),使得其中的和最大? 例如:-2,11,-4,13,-5,-2,和最大的子段为:11,-4,13.和为20. ...
- Effictive Java学习笔记1:创建和销毁对象
建议1:考虑用静态工厂方法代替构造器 理由:1)静态方法有名字啊,更容易懂和理解.构造方法重载容易让人混淆,并不是好主意 2)静态工厂方法可以不必每次调用时都创建一个新对象,而公共构造函数每次调用都会 ...
- DICOM:dcm4che工具包怎样压缩dcm文件探讨(续篇)
背景 前段时间博文DICOM:dcm4che工具包怎样压缩dcm文件探讨(前篇)提到了一个问题:"利用dcm4che工具包中的dcm2dcm来进行dcm文件的压缩和加压缩.即改变dcm文件里 ...
- 是否能重拾Linux下Init 3的快感?
对于Windows大多数程序猿(眼下).是否非常怀念Linux下全字符界面的炫酷与优越感? 是否仍然停留在cmd后,将文件拖到dos下简单的操作呢?以下是近期研究在Windows下用全命令行的方 ...