思维加枚举

题意 :足球赛,赢平所得到的分数分别为w和d,w>d,分别求赢平输的场数,输出一组即可,即x+y+z=n 且 xw+yd=p的一组解。

可以扩展公约数做,但由于注意到d和w<1e5的条件,可以枚举。

个人理解是由于dw=wd 就是说你用w场平的所得分和d场赢所得分是一样,所以我们就可以调整平的场数,由于题目有这样一句话

Note that w>dw>d, so the number of points awarded for winning is strictly greater than the number of points awarded for draw.

所以我们尽量让平的场数少,介于[0,w-1]之间,(显然平的场数超过这个区间的时候,我可以用d场赢的来替代,且由于d<w,所用的场数更少,另外的部分让其去输凑总场次即可)

所以就是枚举平的场数呀,大概记录一下思维。

 #include <bits/stdc++.h>
#define debug(x) cout << #x << ": " << x << endl
using namespace std;
typedef long long ll;
const int MAXN=2e5+;
const int INF=0x3f3f3f3f; int main()
{
ios::sync_with_stdio(false);
cin.tie();
ll n,p,d,w;
cin>>n>>p>>w>>d;
ll x,y,z;
int ok=;
for(int i=;i<w;++i)
{
if((p-(i*d))%w==)
{
x=(p-i*d)/w;
y=i;
z=n-x-y;
if(x>= && y>= && z>=) {ok=;break;}
}
}
if(!ok) cout<<-<<endl;
else cout<<x<<' '<<y<<' '<<z<<endl;
return ;
}

最新文章

  1. Win10 IIS本地部署MVC网站时不能运行?
  2. 使用ViewPager实现自动轮播
  3. 每天一个linux命令(59):rcp命令
  4. Service Station - An Introduction To RESTful Services With WCF
  5. Android中使用am命令实现在命令行启动程序详解
  6. debian修改ip地址
  7. PAT-乙级-1030. 完美数列(25)
  8. Python学习笔记 (3) :列表、元组的操作
  9. 配置静态监听解决ORA-12514错误的案例(转)
  10. C#:委托(delegate)和事件(event) (转)
  11. web前端工程师全套教程免费分享
  12. Oracle12c中数据泵新特性之功能增强(expdp, impdp)
  13. spring boot集成aop实现日志记录
  14. [规则原则定理]规则原则定理章4 HTTP&amp;RPC
  15. truncate、delete、drop区别
  16. JVM内存管理---垃圾收集器
  17. MySQL -- 全文检索(布尔全文检索)
  18. 福大软工 &#183; BETA 版冲刺前准备
  19. activemq的高级特性:通配符式分层订阅
  20. 访问IO设备

热门文章

  1. MariaDB和Apache安装
  2. java前端与后端怎么选??
  3. 通过哪吒动漫豆瓣影评,带你分析python爬虫与BeautifulSoup快速入门【华为云技术分享】
  4. JQuery之选择器的类型
  5. 最新Navicat Premium12 破解方法,亲测可用
  6. JS中的运算符_函数学习
  7. [TimLinux] Python 装饰器
  8. 洛谷 题解 P2645 【斯诺克】
  9. Mac 配置 PlantUML
  10. seaborn 数据可视化(二)带有类别属性的数据可视化