[Codeforces 1244C] The Football Season
2024-08-28 12:46:27
思维加枚举
题意 :足球赛,赢平所得到的分数分别为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 ;
}
最新文章
- Win10 IIS本地部署MVC网站时不能运行?
- 使用ViewPager实现自动轮播
- 每天一个linux命令(59):rcp命令
- Service Station - An Introduction To RESTful Services With WCF
- Android中使用am命令实现在命令行启动程序详解
- debian修改ip地址
- PAT-乙级-1030. 完美数列(25)
- Python学习笔记 (3) :列表、元组的操作
- 配置静态监听解决ORA-12514错误的案例(转)
- C#:委托(delegate)和事件(event) (转)
- web前端工程师全套教程免费分享
- Oracle12c中数据泵新特性之功能增强(expdp, impdp)
- spring boot集成aop实现日志记录
- [规则原则定理]规则原则定理章4 HTTP&;RPC
- truncate、delete、drop区别
- JVM内存管理---垃圾收集器
- MySQL -- 全文检索(布尔全文检索)
- 福大软工 &#183; BETA 版冲刺前准备
- activemq的高级特性:通配符式分层订阅
- 访问IO设备