Codeforces Round #299 (Div. 2)A B C 水 dfs 二分
1 second
256 megabytes
standard input
standard output
Today Tavas got his test result as an integer score and he wants to share it with his girlfriend, Nafas.
His phone operating system is Tavdroid, and its keyboard doesn't have any digits! He wants to share his score with Nafas via text, so he has no choice but to send this number using words.
He ate coffee mix without water again, so right now he's really messed up and can't think.
Your task is to help him by telling him what to type.
The first and only line of input contains an integer s (0 ≤ s ≤ 99), Tavas's score.
In the first and only line of output, print a single string consisting only from English lowercase letters and hyphens ('-'). Do not use spaces.
6
six
99
ninety-nine
20
twenty
You can find all you need to know about English numerals in http://en.wikipedia.org/wiki/English_numerals .
题意:将0~99转换为单词表示
题解:标记一下。
#include<bits/stdc++.h>
using namespace std;
#define ll __int64
int n;
map<int,string> mp;
int main()
{
scanf("%d",&n);
mp[]="zero";
mp[]="one";
mp[]="two";
mp[]="three";
mp[]="four";
mp[]="five";
mp[]="six";
mp[]="seven";
mp[]="eight";
mp[]="nine";
mp[]="ten";
mp[]="eleven";
mp[]="twelve";
mp[]="thirteen";
mp[]="fourteen";
mp[]="fifteen";
mp[]="sixteen";
mp[]="seventeen";
mp[]="eighteen";
mp[]="nineteen";
mp[]="twenty";
mp[]="thirty";
mp[]="forty";
mp[]="fifty";
mp[]="sixty";
mp[]="seventy";
mp[]="eighty";
mp[]="ninety";
if(n<=)
cout<<mp[n]<<endl;
else
{
int a,b;
a=n/;
b=n%;
if(b>)
cout<<mp[a*]<<"-"<<mp[b]<<endl;
else
cout<<mp[a*]<<endl;
}
return ;
}
1 second
256 megabytes
standard input
standard output
Once again Tavas started eating coffee mix without water! Keione told him that it smells awful, but he didn't stop doing that. That's why Keione told his smart friend, SaDDas to punish him! SaDDas took Tavas' headphones and told him: "If you solve the following problem, I'll return it to you."
The problem is:
You are given a lucky number n. Lucky numbers are the positive integers whose decimal representations contain only the lucky digits 4 and 7. For example, numbers 47, 744, 4 are lucky and 5, 17, 467 are not.
If we sort all lucky numbers in increasing order, what's the 1-based index of n?
Tavas is not as smart as SaDDas, so he asked you to do him a favor and solve this problem so he can have his headphones back.
The first and only line of input contains a lucky number n (1 ≤ n ≤ 109).
Print the index of n among all lucky numbers.
4
1
7
2
77
6
题意:求小于等于的n的数中 只含有4,7的数字的个数
题解:dfs一下
#include<bits/stdc++.h>
using namespace std;
#define ll __int64
ll n;
ll sum=;
void dfs(ll x)
{
if(x<=n)
sum++;
else
return ;
dfs(x*+);
dfs(x*+);
}
int main()
{
scanf("%I64d",&n);
dfs();
dfs();
printf("%I64d\n",sum);
return ;
}
2 seconds
256 megabytes
standard input
standard output
Karafs is some kind of vegetable in shape of an 1 × h rectangle. Tavaspolis people love Karafs and they use Karafs in almost any kind of food. Tavas, himself, is crazy about Karafs.
Each Karafs has a positive integer height. Tavas has an infinite 1-based sequence of Karafses. The height of the i-th Karafs is si = A + (i - 1) × B.
For a given m, let's define an m-bite operation as decreasing the height of at most m distinct not eaten Karafses by 1. Karafs is considered as eaten when its height becomes zero.
Now SaDDas asks you n queries. In each query he gives you numbers l, t and m and you should find the largest number r such that l ≤ r and sequence sl, sl + 1, ..., sr can be eaten by performing m-bite no more than t times or print -1 if there is no such number r.
The first line of input contains three integers A, B and n (1 ≤ A, B ≤ 106, 1 ≤ n ≤ 105).
Next n lines contain information about queries. i-th line contains integers l, t, m (1 ≤ l, t, m ≤ 106) for i-th query.
For each query, print its answer in a single line.
2 1 4
1 5 3
3 3 10
7 10 2
6 4 8
4
-1
8
-1
1 5 2
1 5 10
2 7 4
2
题解: 序列h1,h2,...,hn 可以在t次时间内(每次至多让m个元素减少1) 全部减小为0 当且仅当 max(h1, h2, ..., hn) <= t && h1 + h2 + ... + hn <= m*t
二分右端点;
#include<bits/stdc++.h>
using namespace std;
#define ll __int64
ll a,b,n;
ll l,t,m;
bool fun(int x)
{
ll shou=a+(l-)*b;
ll exm=a+(x-)*b;
ll sum=(shou+exm)*(x-l+)/;
if(exm<=t&&sum<=t*m)
return true;
else
return false;
}
int main()
{
scanf("%I64d %I64d %I64d",&a,&b,&n);
for(int i=;i<=n;i++)
{
scanf("%I64d %I64d %I64d",&l,&t,&m);
ll left=l,right=1e6+,mid;
ll flag=;
while(left<=right)
{
mid=(left+right)/;
if(fun(mid)){
left=mid+;
flag=;
}
else
right=mid-;
}
if(flag==)
printf("-1\n");
else
printf("%I64d\n",right);
}
return ;
}
Codeforces Round #299 (Div. 2)A B C 水 dfs 二分的更多相关文章
- 二分搜索 Codeforces Round #299 (Div. 2) C. Tavas and Karafs
题目传送门 /* 题意:给定一个数列,求最大的r使得[l,r]的数字能在t次全变为0,每一次可以在m的长度内减1 二分搜索:搜索r,求出sum <= t * m的最大的r 详细解释:http:/ ...
- 水题 Codeforces Round #299 (Div. 2) A. Tavas and Nafas
题目传送门 /* 很简单的水题,晚上累了,刷刷水题开心一下:) */ #include <bits/stdc++.h> using namespace std; ][] = {" ...
- DFS Codeforces Round #299 (Div. 2) B. Tavas and SaDDas
题目传送门 /* DFS:按照长度来DFS,最后排序 */ #include <cstdio> #include <algorithm> #include <cstrin ...
- Codeforces Round #367 (Div. 2) A. Beru-taxi (水题)
Beru-taxi 题目链接: http://codeforces.com/contest/706/problem/A Description Vasiliy lives at point (a, b ...
- Codeforces Round #603 (Div. 2) A. Sweet Problem(水.......没做出来)+C题
Codeforces Round #603 (Div. 2) A. Sweet Problem A. Sweet Problem time limit per test 1 second memory ...
- Codeforces Round #334 (Div. 2) A. Uncowed Forces 水题
A. Uncowed Forces Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/604/pro ...
- Codeforces Round #285 (Div. 2) A, B , C 水, map ,拓扑
A. Contest time limit per test 1 second memory limit per test 256 megabytes input standard input out ...
- Codeforces Round #299 (Div. 2) D. Tavas and Malekas kmp
题目链接: http://codeforces.com/problemset/problem/535/D D. Tavas and Malekas time limit per test2 secon ...
- Codeforces Round #299 (Div. 1) A. Tavas and Karafs 水题
Tavas and Karafs Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/536/prob ...
随机推荐
- Python os.makedirs() 方法
os.makedirs() 方法用于递归创建目录.像 mkdir(), 但创建的所有intermediate-level文件夹需要包含子目录. 语法 makedirs()方法语法格式如下: os.ma ...
- 如何打开tensorboard观测训练过程
TensorBoard是TensorFlow下的一个可视化的工具,能够帮助研究者们可视化训练大规模神经网络过程中出现的复杂且不好理解的运算,展示训练过程中绘制的图像.网络结构等. 最近本人在学习这方面 ...
- Eclipse 如何安装反编译插件
安装反编译插件 1.Help——Eclipse Marketplace 2.输入 Decompiler 搜索并安装此插件 3.根据提示无脑下一步,安装好,重启后(如果还是无法编译,需要把默认打开cla ...
- RabbitMQ 安装,配置
1:安装 yum install -y rabbitmq-server 2:主要程序介绍 # 管理插件的程序 /usr/sbin/rabbitmq-plugins # 服务程序 /usr/sbin ...
- jdbc 1.0
1. jdbc : java数据库连接技术 2.主要用到的类及接口 Class Driver ManagerDriver Connection Statement PreparedStatement ...
- HTML&CSS实体
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 查询出menupath字段中 出现 “- "(横杆)大于3次的 记录
- HDU 3579——Hello Kiki
好久没写什么数论,同余之类的东西了. 昨天第一次用了剩余定理解题,今天上百度搜了一下hdu中国剩余定理.于是就发现了这个题目. 题目的意思很简单.就是告诉你n个m[i],和n个a[i].表示一个数对m ...
- OGG内部进程介绍
1.首先看看什么是OGG,以及OGG的用途 简单的来讲 Oracle Golden Gate (简称OGG)是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得 ...
- 实现对一个8bit数据的指定位的置0或者置1操作,并保持其他位不变。
给定函数原型:void bit_set(unsigned char *p_data,unsigned char positin,int flag) 参数说明:p_data是指定的源数据:positio ...