A1504. Book(王迪)
时间限制:1.0s   内存限制:256.0MB   Special Judge
总提交次数:359   AC次数:97   平均分:43.76
 
将本题分享到:
      
试题来源
  2013中国国家集训队第二次作业
问题描述
  Wayne喜欢看书,更喜欢买书。
  某天Wayne在当当网上买书,买了很多很多书。Wayne有一个奇怪的癖好,就是第一本书的价格必须恰为X,而之后买的每一本书,若是比上一本更昂贵,则价格最多多A元;若是比上一本更便宜,则价格最多少B元。
  Wayne心血来潮,一口气买了N本书,但他记不得每本书的价格了,只记得总价格是M。Wayne于是很想知道一种可能的书价分布。为了简化问题,我们假定书价的定义域是整数,且每本书与上一本书的价格差,要么恰为+A,要么恰为-B。
  只要给出任意一个合法的书价序列就算正确。
输入格式
  第一行一个正整数N。
  第二行四个整数依次是X,A,B,M。
输出格式
  输出一行N个整数,用空格隔开。数据保证有解。
样例输入
4
10 1 2 37
样例输出
10 11 9 7
数据规模和约定
  对于5%的数据,满足N = 1。
  对于另外25%的数据,满足A = B = 1, N <= 100。
  对于另外10%的数据,满足A, B <= 5, N <= 100。
  对于另外20%的数据,满足N <= 1000。
  对于100%的数据,满足1 <= A, B <= 10^6,|X| <= 10^6,N <= 10^5,M可用带符号64位整型存储。
 
 
题解:
数论+贪心
以下是王迪的解题报告:
 
 #include<bits/stdc++.h>
using namespace std;
#define LL long long
//LL prey[100010];
bool vis[];
LL read()
{
LL s=,fh=;char ch=getchar();
while(ch<''||ch>''){if(ch=='-')fh=-;ch=getchar();}
while(ch>=''&&ch<=''){s=s*+(ch-'');ch=getchar();}
return s*fh;
}
int main()
{
LL n,x,a,b,m,k,i,j,lp;
n=read();
x=read();a=read();b=read();m=read();
k=n*x+((n-)*n)/*a;//假设全部增加a的总钱数.
k-=m;//用 全部增加a的总钱数 减去 实际花费的钱数 得到有多少钱从 +a 转化为 -b ,也就是减去(a+b).
k/=(a+b);//计算出有多少书进行了从 +a 转化为 -b.
//因为改变每一个差量,所影响的数的个数为(0,1,2...n-1)中的一个.所以,我们只需要求出k可以由 0~(n-1) 中的哪一些组成.
memset(vis,false,sizeof(vis));
for(i=n-;i>=;i--)//倒着去找,一定保证k可以组成.(有点类似倍增LCA的倒着找的原理)
{
if(k>=i)
{
k-=i;
vis[i]=true;//标记为true的代表要转换为-b.
if(k==)break;
}
}
/*双重循环(60分)
for(i=1;i<=n;i++){prey[i]=x;x+=a;}
for(i=1;i<=n-1;i++)
{
if(vis[i]==true)
{
for(j=n;j>=n-i+1;j--)prey[j]-=(a+b);
}
}
for(i=1;i<=n;i++)printf("%lld ",prey[i]);*/
printf("%lld",x);
for(i=n-;i>=;i--)
{
if(vis[i]==true)//若要转化为-b,就要在原先的x的基础上加上-b(即减去b).
{
x-=b;
}
else
{
x+=a;
}
printf(" %lld",x);
}
fclose(stdin);
fclose(stdout);
return ;
}

Tsinsen A1504. Book(王迪) 数论,贪心的更多相关文章

  1. 2018.10.31 NOIP模拟 一串数字(数论+贪心)

    传送门 把每一个数aaa质因数分解. 假设a=p1a1∗p2a2∗...∗pkaka=p_1^{a_1}*p_2^{a_2}*...*p_k^{a_k}a=p1a1​​∗p2a2​​∗...∗pkak ...

  2. 2018.10.27 codeforces402D. Upgrading Array(数论+贪心)

    传送门 唉我觉得这题数据范围1e5都能做啊... 居然只出了2000 考完听zxyzxyzxy说我的贪心可以卡但过了? 可能今天本来是0+10+00+10+00+10+0只是运气好T1T1T1骗了10 ...

  3. SPOJ - LOCKER 数论 贪心

    题意:求出\(n\)拆分成若干个数使其连乘最大的值 本题是之江学院网络赛的原题,计算规模大一点,看到EMAXX推荐就做了 忘了大一那会是怎么用均值不等式推出结果的(还给老师系列) 结论倒还记得:贪心分 ...

  4. Codefoces 432C Prime Swaps(数论+贪心)

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/u011328934/article/details/26094917 题目连接:Codefoces ...

  5. CodeForces 124C Prime Permutation (数论+贪心)

    题意:给定一个字符串,问你能不能通过重排,使得任意一个素数p <= 字符串长度n,并且 任意的 i <= 长度n/素数p,满足s[p] == s[p*i]. 析:很容易能够看出来,只要是某 ...

  6. codeforces 402 D. Upgrading Array(数论+贪心)

    题目链接:http://codeforces.com/contest/402/problem/D 题意:给出一个a串和素数串b .f(1) = 0; p为s的最小素因子如果p不属于b , 否则 . a ...

  7. 牛客:t次询问,每次给你一个数n,求在[1,n]内约数个数最多的数的约数个数(数论+贪心)

    https://ac.nowcoder.com/acm/contest/907/B t次询问,每次给你一个数n,求在[1,n]内约数个数最多的数的约数个数 分析: 根据约数和定理:对于一个大于1正整数 ...

  8. CF798 C. Mike and gcd problem

    /* CF798 C. Mike and gcd problem http://codeforces.com/contest/798/problem/C 数论 贪心 题意:如果一个数列的gcd值大于1 ...

  9. POJ 3154 Graveyard【多解,数论,贪心】

    Graveyard Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 1707   Accepted: 860   Specia ...

随机推荐

  1. 尝试设计LFSR加密器,并用CAP4验证随机性

    在CPA4软件中有提供设计LFSR加密器的功能: 输入LFSR的大小,初始密钥,还有反馈密钥. 点击Set Key后点击Show LFSR 观察LFSR,发现初始密钥是1101,转成十六进制是D,反馈 ...

  2. Eclipse相关

    JDK版本更换相关: 启动eclipse会报错:根据报错信息后面提示的eclipse配置信息,我将配置中的c:/xx/javaw.exe给移除了.并在eclipse.ini中配置了-vm d:/Jav ...

  3. ubuntu vim 插件安装

    参考:http://blog.sina.com.cn/s/blog_00f0230d0100y7ih.html 不过由于时间久远,有些已经失效,以上是我的修改过程 参考:https://github. ...

  4. PHP类中的__get()和__set函数到底有什么用?

    当试图获取一个不可达变量时,类会自动调用__get. 同样的,当试图设置一个不可达变量时,类会自动调用__set. 在网站中,这两个并不是什么非用不可的函数.   例如: Class Test {   ...

  5. MIS框架开发计划

    计划开发模块 缓存模块 全球化模块(时间转换.货币转换.语言切换.度量转换.时区转换) 用户模块 用户短消息模块 日志模块(系统日志.用户操作日志.安全审计日志) 权限模块 配置模块 事件模块(观察者 ...

  6. python的一些学习资料(持续更新中)

    Markdown在线编辑器 廖雪峰官方博客[基础入门好资料] python-guide[传说中的巨牛写的] the5fire的技术博客[全职python程序员博客]

  7. 开源CMS赏析

    国内CMS产品有很多,开源的产品也不少,大概的可分为以下几类: .NET开源产品:We7CMS: PHP开源产品:Dede CMS.PHP CMS和帝国CMS: ASP开源产品:动易SiteFacto ...

  8. leetcode第六题 ZigZag Conversion (java)

    ZigZag Conversion The string "PAYPALISHIRING" is written in a zigzag pattern on a given nu ...

  9. hdu 4731

    一道找规律的题,但今天的智商捉急,一直都想不到点子上: 比赛之后和别人讨论的时候,在n=2的情况下,前面两个是aa,后面就接着很多个aababb,然后最后再判断下就行了~~~ 以后对于这种题还是不要太 ...

  10. mysql优化案例

    MySQL优化案例 Mysql5.1大表分区效率测试 Mysql5.1大表分区效率测试MySQL | add at 2009-03-27 12:29:31 by PConline | view:60, ...