A:A. Nuts

time limit per test

1 second

memory limit per test

256 megabytes

input

standard input

output

standard output

You have a nuts and lots of boxes. The boxes have a wonderful feature: if you put x (x ≥ 0)divisors (the spacial bars that can divide a box) to it, you get a box, divided into x + 1sections.

You are minimalist. Therefore, on the one hand, you are against dividing some box into more than k sections. On the other hand, you are against putting more than v nuts into some section of the box. What is the minimum number of boxes you have to use if you want to put all the nuts in boxes, and you have b divisors?

Please note that you need to minimize the number of used boxes, not sections. You do not have to minimize the number of used divisors.

Input

The first line contains four space-separated integers kabv (2 ≤ k ≤ 1000; 1 ≤ a, b, v ≤ 1000) — the maximum number of sections in the box, the number of nuts, the number of divisors and the capacity of each section of the box.

Output

Print a single integer — the answer to the problem.

Sample test(s)
input
3 10 3 3
output
2
input
3 10 1 3
output
3
input
100 100 1 1000
output
1
Note

In the first sample you can act like this:

  • Put two divisors to the first box. Now the first box has three sections and we can put three nuts into each section. Overall, the first box will have nine nuts.
  • Do not put any divisors into the second box. Thus, the second box has one section for the last nut.

In the end we've put all the ten nuts into boxes.

The second sample is different as we have exactly one divisor and we put it to the first box. The next two boxes will have one section each.

花了半个多小时去理清数据的关系,开始感觉无从下手。。。我的方法是:制造相应的盒子,能放多少就尽量放到前面的盒子里面,最后统计一下就可以

#include<iostream>
#include<algorithm>
#include<math.h>
using namespace std;
int aa[]; //盒子能放的个数
int main()
{
    int k,a,b,v;
    cin>>k>>a>>b>>v;
    int ans=;
    for (int i=;i<=;i++)
         aa[i]=v;               初始每个盒子开始只有一个SECTION
    for (int i=;i<=;i++)
     {
         if (b==) break;
         if (b+>=k) {aa[i]+=v*(k-);b-=(k-);}  有B则先用
         else
         {
             aa[i]+=b*v;
             break;
         }
     }
    int tem=,ll;
    for (int i=;i<=;i++)
    {
        tem+=aa[i];
        if (tem>=a) {ll=i;break;}
    }
    cout<<ll<<endl;
    return ;

}

B:题意很简单,构造等差数列,求改变的数的个数最小。。

从A[1]暴力枚举就可,不知为何我从A[N]枚举就挂,白WA5次 #include<iostream>

#include<algorithm>
#include<math.h>
using namespace std;
int a[],n,k;
int main()
{
    cin>>n>>k;
    for (int i=;i<=n;i++)
    cin>>a[i];
    int ans=;
    int kk;
    for (int i=;i<=;i++)
    {
        int o=;
        int tem=i;
        for (int j=;j<=n;j++)
        {
            if (a[j]!=tem)
            o++;
            tem+=k;
        }
        if (o<ans) {ans=o;kk=i;}
    }     cout<<ans<<endl;
    if (ans==) return ;
    for (int i=;i<=n;i++)
    {
        if (a[i]>kk) {cout<<"- "<<i<<" "<<a[i]-kk<<endl;}
        else if (a[i]<kk) {cout<<"+ "<<i<<" "<<kk-a[i]<<endl;}
        kk+=k;
    }
    return ;
} C题,我是瞎搞,我的理解是使点连接的边相对稀少,先这样加边:1-->2,2-->3,3-->4,n-1-->n;先见N-1条边,然后:1-->3,2-->4,3-->5,依次;然后是:1--4,2-->5,....感觉这样相对不密集。。#include<iostream>#include<algorithm>
#include<math.h>
#include<string.h>
using namespace std;
int n,p;
int mp[][];
int main()
{
  int t;
  cin>>t;
  while (t--)
  {
      int m=*n+p;
      memset(mp,,sizeof(mp));
      cin>>n>>p;
      for (int i=;i<n;i++)
        mp[i][i+]=;
        m=*n+p;
        m=m-(n-);
            for (int i=;i<n;i++)
            {
             if (m==) break;
             for (int j=;j+i<=n;j++)
             {
                mp[j][j+i]=;
                m--;
                if (m==) break;
              }
            }
    for (int i=;i<=n;i++)
        for (int j=;j<=n;j++)
        if (mp[i][j])
        cout<<i<<" "<<j<<endl;
  }
    return ;}还有不得不吐槽自己的码代码能力,太坑了 

codeforces #236 div2 简洁题解的更多相关文章

  1. Codeforces Round div2 #541 题解

    codeforces Round #541 abstract: I构造题可能代码简单证明很难 II拓扑排序 III并查集 启发式排序,带链表 IV dp 处理字符串递推问题 V 数据结构巧用:于二叉树 ...

  2. codeforces 576 div2 A-D题解

    A题 Description 题目链接: https://codeforces.com/contest/1199/problem/A 题意: 给定长度为n(1≤n≤100000)的一个序列a,以及两个 ...

  3. Codeforces #541 (Div2) - E. String Multiplication(动态规划)

    Problem   Codeforces #541 (Div2) - E. String Multiplication Time Limit: 2000 mSec Problem Descriptio ...

  4. Codeforces #541 (Div2) - F. Asya And Kittens(并查集+链表)

    Problem   Codeforces #541 (Div2) - F. Asya And Kittens Time Limit: 2000 mSec Problem Description Inp ...

  5. Codeforces #541 (Div2) - D. Gourmet choice(拓扑排序+并查集)

    Problem   Codeforces #541 (Div2) - D. Gourmet choice Time Limit: 2000 mSec Problem Description Input ...

  6. Codeforces #548 (Div2) - D.Steps to One(概率dp+数论)

    Problem   Codeforces #548 (Div2) - D.Steps to One Time Limit: 2000 mSec Problem Description Input Th ...

  7. Codeforces #180 div2 C Parity Game

    // Codeforces #180 div2 C Parity Game // // 这个问题的意思被摄物体没有解释 // // 这个主题是如此的狠一点(对我来说,),不多说了这 // // 解决问 ...

  8. Codeforces Round #543 Div1题解(并不全)

    Codeforces Round #543 Div1题解 Codeforces A. Diana and Liana 给定一个长度为\(m\)的序列,你可以从中删去不超过\(m-n*k\)个元素,剩下 ...

  9. Codeforces Round #545 Div1 题解

    Codeforces Round #545 Div1 题解 来写题解啦QwQ 本来想上红的,结果没做出D.... A. Skyscrapers CF1137A 题意 给定一个\(n*m\)的网格,每个 ...

随机推荐

  1. 【转】Spark 体系结构

    原文地址:http://jerryshao.me/architecture/2013/03/29/spark-overview/ 援引@JerryLead的系统架构图作为Spark整体结构的一个 bi ...

  2. 使用WIF实现单点登录Part II —— Windows Identity Foundation基本原理

    在上一篇文章中,我们已经使用WIF构建了一个基于MVC4的简单的身份验证程序,在这篇文章里,我们将探讨一下到底什么是WIF,以及它的工作原理.然后在下一篇文章开始,我们将实际操作,实现单点登录功能. ...

  3. UCOS2_STM32F1移植详细过程(三)

    Ⅰ.概述 上一篇文章是讲述ST芯片相关的配置和OS裁剪相关的配置,接着上一篇文章来讲述关于UCOS的移植,该文主要针对uC/OS-II Ports下面os_cpu_a.asm.os_cpu_c.c和o ...

  4. python学习应用笔记(一)

    之前一直用c++写程序  所以考虑程序一般都比较容易往数据结构的方向想 而自己设计数据结构往往要费很大事  昨天看了一下python  发现脚本语言 真是厉害    用来进行模拟运算确实不错  可以先 ...

  5. Java当中的I/O的字节流

    I/O是input/output的缩写,即输入输出系统. I/O操作即从数据源中读取数据,以及将数据写入到数据目的地中.读的来源(如文件.键盘.网络)和写的目的地(如文件.屏幕.网络)分为很多种. 数 ...

  6. spring 3 的 @value的使用

    Spring 3支持@value注解的方式获取properties文件中的配置值,大大简化了我们读取配置文件的代码.使用方式如下: 1.首先必须要配置properties文件的加载bean:在spri ...

  7. IE浏览器各版本的CSS Hack

    IE浏览器各版本的CSS   Hack 如下示例: .test{ color:black;/*W3C*/ color:red\9;/* IE6-IE10 */ _color:black;/*IE6*/ ...

  8. UITextField使用的相关方法

    1.设置占位符 textField.placeholder = @“”; 2.设置暗文输入 textField.secureTextEntry = YES;   3.设置键盘类型 textField. ...

  9. [转]STUN和TURN技术浅析

    [转]STUN和TURN技术浅析 http://www.h3c.com.cn/MiniSite/Technology_Circle/Net_Reptile/The_Five/Home/Catalog/ ...

  10. asf与vga视频为何无法同步播放?我来给你解释!

    因为你的笔记本可以,所以你的台式机不可以,当然跟深刻的原因是,你的笔记本有什么特别硬件