Crime and Punishment

原创 2016年08月28日 17:44:05
链接:http://acm.timus.ru/problem.aspx?space=1&num=1430

题目:

Background

Petty bureaucrat Victor Thiefton was disposed towards stealing from his childhood. But one thing is to legally privatize national factories, diamond fields and oil derricks at the cost of billions dollars. And another thing is to filch some money from a poor regional budget. Our legislation is very strict. Therefore Victor felt that justice is on the alert just after he extracted his hand from the national pocket. What should he do to escape inevitable punishment?
Mr. Thiefton has once heard that in accordance with the criminal legislation standards he would be condemned to long imprisonment for a theft whereas in case of a peculation he could escape with a suspended sentence only. So if the most part of stolen money is peculated, the duration of imprisonment will be reduced.

Problem

The same evening Mr. Thiefton burst into "MegaApril" superstore and rushed for overflowing storefronts carrying a purse with N stolen dollars. It appeared that unlimited number of high-quality goods and goods at moderate price were on sale in the superstore. High-quality goods cost A dollars per piece, and goods at moderate price cost B dollars per piece. Victor should spend as much stolen money as possible to reduce the duration of imprisonment to a minimum.


题意:数字abc,求n*a+m*b最大且n*a+m*b<=c的n和m(任意)

分析:数论内容(最大公约数最小公倍数),也可暴力求解

题解:
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <algorithm>
#include <queue>
#include <stack>
#include <vector>
#include <map>
#include <string>
#include <cstring>
#include <functional>
#include <cmath>
#include <cctype>
#include <cfloat>
#include <climits>
#include <complex>
#include <deque>
#include <list>
#include <set>
#include <utility>
using namespace std;

int gcd(int a,int b)
{
	return (b)?gcd(b,a%b):a;
}

int main()
{
	int a,b,n,g,t,res,x,y;
	scanf("%d %d %d",&a,&b,&n);
	bool flag=false;
	if(a<b){
		swap(a,b);
		flag=true;
	}
	g=gcd(a,b);
	n/=g;
	a/=g;
	b/=g;
	t=n/a;
	res=n;
	x=y=0;
	for(int i=0;i<=t;++i){
		if(res>(n-i*a)%b){
			x=i;y=(n-i*a)/b;
			res=n-x*a-y*b;
			if(res==0)break;
		}
	}
	if(flag)
		printf("%d %d\n",y,x);
	else
		printf("%d %d\n",x,y);
	return 0;
}


版权声明:本文为博主原创文章,未经博主允许不得转载。

Android编程权威指南(第二版)学习笔记(十三)—— 第13章 工具栏(Toolbar)

本章主要讲了如何使用 ToolBar,顺便普及了 AppCompat 的由来和 app 命名空间的知识...
  • kniost
  • kniost
  • 2016年11月24日 11:45
  • 916

Xgboost的简单使用2

1、xgboost预测#xgboost预测import xgboost as xgb # read in data dtrain = xgb.DMatrix('demo/data/agaricus.t...
  • rosefun96
  • rosefun96
  • 2017年12月24日 10:32
  • 33

XGBoost学习日记1

Bagging算法:每个分类器都随机从原样本中做有放回的采样,然后分别在这些采样后的样本上训练分类器,然后再把这些分类器组合起来。简单的多数投票一般就可以。其代表算法是随机森林。Bagging主要关注...
  • shengshengwang
  • shengshengwang
  • 2016年06月23日 16:55
  • 1602

kaggle之旧金山犯罪

特点: 1. 离散特征 2. 离散特征二值化处理 数据概览 import pandas as pd import numpy as np...
  • lijingpengchina
  • lijingpengchina
  • 2016年08月19日 09:28
  • 1434

AcDream 1729 Crime【二分匹配+二分图染色】水题= =

Crime Time Limit: 2000/1000MS (Java/Others)    Memory Limit: 262144/131072KB (Java/Others) Submit St...
  • mengxiang000000
  • mengxiang000000
  • 2017年08月07日 15:24
  • 92

杭电ACM几个简单的算法

最近学习了如何巧妙运用数组来存储数据,可以用两个相关联的数组来存储相应信息 直接上代码了 #include #include int main() { char color[100][16]...
  • content6
  • content6
  • 2016年11月20日 17:16
  • 378

R各个包里面的数据集列表

Package  Item  Title  csv  doc datasets AirPassengers Monthly Airline Passenger Numbers 1...
  • u014032673
  • u014032673
  • 2014年07月07日 15:08
  • 5350

Kaggle实战学习 笔记

学习笔记 第一课 数据与可视化 #numpy科学计算工具箱 import numpy as np #使用make_classification构造1000个样本,每个样本有20个feature f...
  • bbbeoy
  • bbbeoy
  • 2017年11月27日 17:06
  • 517

R语言基本备忘-统计分析

Part1 相关统计量说明 峰度系数Coefficientof kurtosis http://baike.baidu.com/link?url=gS_sgtNYSRdjLnadNWDDa357DIz...
  • cl1143015961
  • cl1143015961
  • 2015年05月12日 09:46
  • 2352

hdu 4623 Crime(等价类+变进制哈希+状压dp)

题目链接:hdu 4623 Crime解题思路n最大为28,首先想到状态压缩,dp[s][i]dp[s][i]表示已经选了哪些数和最后一位为i的情况数。Smax=228S_{max} = 2^{28}...
  • u011328934
  • u011328934
  • 2015年10月27日 22:52
  • 435
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Crime and Punishment
举报原因:
原因补充:

(最多只允许输入30个字)