CodeForce #592(div2)A~C

CodeForce #592(div2)A~C_第1张图片
A题

A题——Pens and Pencils
这个题写的是比较快的,但是问题是在下的英文实在是不咋样,所以我读题本身就慢好多。但是努力学习就好了。

这个题目当时看完给我感觉就是暴力,注意一点就是
eg:三场讲座一根pen刚好,但是四场就不够了,但是第二根pen用不完,我们这里是进一不四舍五入。我们需要2个pen。

#include
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int a,b,c,d,k;
        cin>>a>>b>>c>>d>>k;
        int sum1,sum2;
        sum1=(a-1)/c+1;
        sum2=(b-1)/d+1;
        if(sum1+sum2>k)
            cout<<"-1"<

CodeForce #592(div2)A~C_第2张图片
B题

B题——Rooms and Staircases
思路:
如果没有梯子,那么我们最多只能将一行完全走完,最多的结果为n
但是一旦有了梯子(假设在第k间房子),也就是说我们能形成一二层之间的通道,假设我们是从二楼左边开始出发,遇到梯子就下来,让后在一楼继续朝左侧行驶,也就是说从左侧开始到左侧结束。我们会有两结果,一个梯子左边,2 (k)个房间。另外一个是2(n-k+1)个房间。最终只需要比较大小输出即可。

#include
using namespace std;
int main()
{
    int t;
    cin>>t;
    while(t--)
    {
        int n;
        int k;
        cin>>n;
        string s;
        cin>>s;
        k=s.find('1');
        int r=s.rfind('1');
        if(k==-1)
            cout<

CodeForce #592(div2)A~C_第3张图片
C题

C题——The Football Season
注意一点:
输入数据w>d;
因为d 然后w的范围也比较小,所以直接枚举判断就是了。

#include 
 
using namespace std;
using ll = long long;
 
int main ()
{
    cin.tie(nullptr);
    cout.tie(nullptr);
    ios::sync_with_stdio(false);
    ios_base::sync_with_stdio(false);
 
    ll n, p, w, d;
    cin >> n >> p >> w >> d;
 
    for (ll y = 0; y <= w; y++) {
        ll sum = p - y*d;
        if (sum < 0)
            continue;
        if (sum % w == 0) {
            ll x = sum / w;
            ll z = n-x-y;
            if (z >= 0) {
                cout << x << ' ' << y << ' ' << z;
                return 0;
            }
        }
    }
 
    cout << -1;
    return 0;
}

你可能感兴趣的:(CodeForce #592(div2)A~C)