ZUFE OJ 2301 GW I (3)
Description
GW 是ZUFE的神犇,有一天他想到一种神奇的变换,并且将它命名为GW变换
对于一个数字n,该变换后的值GW(n)为,先令X=n
第一步,如果X为个位数,GW(n)=X,否则执行第二步;
第二步,X的奇数位置的数字之和为a,偶数位置的和为b, X=a*b, 执行第一步;
现在我们有T个询问,对于每个询问输入三个整数数l,r,x
对于每个询问请输出在[l,r]这个闭区间里的数经过该变换后为x的数有多少个
Input
第一行是一个T,表示有T组询问(T<=1000)
接下来T行,每行三个整数l,r,x (0<=l<=r<=10000000)
Output
输出T行,每行一个整数,代表着答案。
Sample Input
Sample Output
HINT
第二个样例中满足条件的值分别为20和25
离线操作
#include<cstdio>
#include<cstring>
#include<cmath>
#include<stack>
#include<queue>
#include<algorithm>
using namespace std; int tot[];
int ans[+];
int T;
int GW[+];
int r[],d; struct Quary
{
bool flag;//flag==0表示是起点 flag==1表示是终点
int t;//第几组的询问
int u;
int x;//要询问数字
}Q[+]; bool cmp(const Quary&a,const Quary&b)
{
if(a.u==b.u) return a.flag<b.flag;
return a.u<b.u;
} void init()
{
memset(tot,,sizeof tot);
memset(ans,,sizeof ans);
} int Tra(int x)
{
d=;
int A=,B=;
while(x)
{
r[d]=x%;
x=x/;
d++;
}
for(int i=;i<d;i++)
{
if(i%==) A=A+r[i];
else B=B+r[i];
}
return A*B;
} void F()
{
for(int i=;i<=;i++) GW[i]=i;
for(int i=;i<=;i++) GW[i]=GW[Tra(i)];
} int main()
{
F();
scanf("%d",&T);
init();
int zzt=;
for(int i=;i<=T;i++)
{
int L,R,X;
scanf("%d%d%d",&L,&R,&X);
if(X>||X<) {ans[i]=;continue;} Q[zzt].flag=;
Q[zzt].t=i;
Q[zzt].u=L;
Q[zzt].x=X;
zzt++; Q[zzt].flag=;
Q[zzt].t=i;
Q[zzt].u=R;
Q[zzt].x=X;
zzt++;
}
sort(Q,Q+zzt,cmp); int now=;
for(int i=;i<zzt;i++)
{
if(Q[i].flag==)
{
for(int j=now;j<Q[i].u;j++) tot[GW[j]]++;
ans[Q[i].t]=tot[Q[i].x];
now=Q[i].u;
}
else if(Q[i].flag==)
{
for(int j=now;j<=Q[i].u;j++) tot[GW[j]]++;
ans[Q[i].t]=tot[Q[i].x]-ans[Q[i].t];
now=Q[i].u+;
}
}
for(int i=;i<=T;i++) printf("%d\n",ans[i]);
return ;
}
ZUFE OJ 2301 GW I (3)的更多相关文章
- ZUFE OJ 2288 God Wang I
Description God Wang 是ZUFE的神犇,有一天他想到一种神奇的变换,并且将它命名为GodW变换 对于一个数字n,该变换后的值GodW(n)为,先令X=n 第一步,如果X为个位数,G ...
- ZUFE OJ 2145 05机关图
Description Ink最近得到了一张藏宝图,这张图上共有n个藏宝室,但因为年代久远藏宝图上的路已经模糊不清,于是Ink找到了智慧的Pseudo,Pseudo告诉Ink,这个宝藏中每两个藏宝室之 ...
- ZUFE OJ 2289 God Wang II
Description 这个世界太无聊了,于是God Wang想出了新的运算符号$,对于两个数x,y来说x$y的值等于x和y各个位置上的数字乘积之和,没有的位按0来算 比如说123$321=1*3+2 ...
- zufe oj 引水工程( 巧妙地把在i建水设为e[0][i])
引水工程 时间限制: 3 Sec 内存限制: 128 MB提交: 11 解决: 6[提交][状态][讨论版] 题目描述 南水北调工程是优化水资源配置.促进区域协调发展的基础性工程,是新中国成立以来 ...
- 2015浙江财经大学ACM有奖周赛(一) 题解报告
2015浙江财经大学ACM有奖周赛(一) 题解报告 命题:丽丽&&黑鸡 这是命题者原话. 题目涉及的知识面比较广泛,有深度优先搜索.广度优先搜索.数学题.几何题.贪心算法.枚举.二进制 ...
- Online Judge(OJ)搭建(第一版)
搭建 OJ 需要的知识(重要性排序): Java SE(Basic Knowledge, String, FileWriter, JavaCompiler, URLClassLoader, Secur ...
- linux 做gw(nat)详细配置
linux 做企业网关gw(nat)详细配置 最近因为公司的路由器老化导致上网时断时续,上半小时网就断一次网,为此我头疼不已,本着为公司节约成本的宗旨, ...
- [C#] 逆袭——自制日刷千题的AC自动机攻克HDU OJ
前言 做过杭电.浙大或是北大等ACM题库的人一定对“刷题”不陌生,以杭电OJ为例:首先打开首页(http://acm.hdu.edu.cn/),然后登陆,接着找到“Online Exercise”下的 ...
- bzoj 2301: [HAOI2011]Problem b
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MB Submit: 3757 Solved: 1671 [Submit] ...
随机推荐
- Bank Interest
Bank Interest Time Limit : 2000/1000ms (Java/Other) Memory Limit : 131072/65536K (Java/Other) Tota ...
- css 相关
background-size: auto就会变成就是不会让图像变形的,会自动调整,一般是会设置多少箱像素的, background-size: XXpx XXpx;百分百那就铺满整个区域了 back ...
- java 单例模式及getInstance的好处
1.什么是单例模式 简单理解为,有一个类,只能有一个实例化对象,这就是单例模式. 2.getInstance的好处 首先看一下怎样使用getInstance实现单例模式 public class Co ...
- parted
1.选择分区表 sudo parted -s /dev/sdXX mklabel gpt 2.创建分区 sudo parted -s -- /dev/sdX mkpart primary 0 -1s ...
- 常见html标签
1.flash嵌入标签 <object> <embed allowscriptaccess="always" allowfullscreen="true ...
- 【bfs】 poj 3984 maze 队列存储
#include <iostream> #include <stdio.h> #include <cstring> #define Max 0x7f7f7f7f u ...
- Linux标准目录
本文参考鸟哥的linux私房菜 /bin 获得最小的系统可操作性所需要的命令 /boot 内核和加载内核所需要的文件 /dev 终端.磁盘.调制解调器等的设备项 /etc 关键的启动文件和配置文件 / ...
- 10款超酷实用的jQuery焦点图赏析及源码
1.jquery整屏滚动插件Scrollify Scrollify是一个jQuery插件协助整屏滚动和顺利拍摄部分.完全可配置和优化. 在线演示 源码下载 2.jquery实现网易邮箱页面插件full ...
- 在CDockablePane中嵌入对话框
CDockablePane类可以用来创建停靠栏.可以将其他控件集成到CDockablePane的派生类中.下文描述如何将对话框集成到CDockablePane中. a) 创建单文档应用程序: ...
- 在vim下,实现nesC语句的高亮
默认的vim没有支持nesC语法高亮,给阅读源码带来不便.不过可以通过装NesC Syntax Highlighting插件来解决这个问题,具体操作如下: 步骤一:下载插件 在http://www.v ...