Codeforces 965 枚举轮数贪心分糖果 青蛙跳石头最大流=最小割思想 trie启发式合并
A
- /*#include<cstring>#include<algorithm>#include<queue>#include<vector>#include<cstdio>#include<cmath>#include<iostream>*/
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- const int maxn = ;
- int main()
- {
- int k, n, s, p;
- cin >> k >> n >> s >> p;
- int ans = n / s + ( - (n % s == ));
- ans *= k;
- cout << ans / p + ( - (ans % p == )) << endl;
- return ;
- }
B
- /*#include<cstring>#include<algorithm>#include<queue>#include<vector>#include<cstdio>#include<cmath>#include<iostream>*/
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- const int maxn = ;
- char f[][];
- int ans;
- int aimc = ;
- int aimr = ;
- int flag;
- int now;
- int main()
- {
- int n, k;
- cin >> n >> k;
- for (int i = ; i <= n; i++)
- {
- scanf("%s", f[i] + );
- }
- for (int i = ; i <= n; i++)
- {
- for (int j = ; j <= n; j++)
- {
- if (f[i][j] == '#')
- {
- continue;
- }
- now = ;
- for (int dx = j - k + ; dx <= j; dx++)
- {
- if (dx + k > n + )
- {
- break;
- }
- if (dx < )
- {
- continue;
- }
- flag = ;
- for (int w = dx; w <= dx + k - ; w++)
- {
- if (f[i][w] == '#')
- {
- flag = ;
- break;
- }
- }
- if (flag)
- {
- now++;
- }
- }
- for (int dy = i - k + ; dy <= i; dy++)
- {
- if (dy + k > n + )
- {
- break;
- }
- if (dy < )
- {
- continue;
- }
- flag = ;
- for (int w = dy; w <= dy + k - ; w++)
- {
- if (f[w][j] == '#')
- {
- flag = ;
- break;
- }
- }
- if (flag)
- {
- now++;
- }
- }
- if (now > ans)
- {
- ans = now;
- aimc = i, aimr = j;
- }
- }
- }
- cout << aimc << " " << aimr << endl;
- return ;
- }
C
首先用贪心的思想可以知道 如果是一整轮一整轮地分 肯定是X越大越好
当加上题目剩下的不小于X的也要分的时候 最佳肯定是当X尽量大且最后多分给A1一次的时候最佳
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- int main()
- {
- ll n,k,m,d;
- cin >> n >> k >> m >> d;
- ll anser=;
- for(ll i=;i<=d;i++)
- {
- if(i!=)
- {
- ll now=n/(i-);
- if(now<k)
- continue;
- }
- ll sum=n/(k*i-k+);
- if(sum>m)
- {
- if(m*i>=(n-n%m)/k)
- sum=m;
- else
- continue;
- }
- anser=max(anser,sum*i);
- }
- cout<<anser<<endl;
- return ;
- }
D
这题的建模是一个网络流 第i个石头对每个[i+1,i+l]都有一条容量为a[i]的边 源点与左岸相连 汇点与右岸相连 算最大流
但其实可以用最大流最小割思想简化 因为你跳的次序并不会影响最后的答案 所以我们可以认定每次全部青蛙都在一个长度为L的窗口内
所以答案就是min(sum(ai~ai+l)) 即视连续L个石头为一个节点 前一个节点有指向后一个节点sum(ai~ai+l)的边 所以最大流是最小的那条边
- #include<bits/stdc++.h>
- using namespace std;
- typedef long long ll;
- int a[];
- int main()
- {
- int n, l;
- cin >> n >> l;
- n--;
- int minn = INT_MAX;
- int sum = ;
- for (int i = ; i < n; i++)
- {
- cin >> a[i];
- }
- for (int i = ; i < l; i++)
- {
- sum += a[i];
- }
- minn = sum;
- for (int i = l; i <= n - ; i++)
- {
- sum -= a[i - l];
- sum += a[i];
- minn = min(minn, sum);
- }
- cout << minn << endl;
- return ;
- }
E
Codeforces 965 枚举轮数贪心分糖果 青蛙跳石头最大流=最小割思想 trie启发式合并的更多相关文章
- JAVA-小青蛙跳石头游戏
游戏摘自微信传的手机网页版小游戏,我拿来做成了JAVA的界面版,但是没有去做素材,,直接拿方块代替小青蛙.游戏原址就不分享了,只能在手机上打开. 下面是源码: /* * Main.java * */ ...
- Atcoder Regular Contest 125 E - Snack(最小割转化+贪心)
Preface: 这是生平第一道现场 AC 的 arc E,也生平第一次经历了 performance \(\ge 2800\),甚至还生平第一次被 hb 拉到会议里讲题,讲的就是这个题,然鹅比较尬 ...
- [LeetCode] Candy (分糖果),时间复杂度O(n),空间复杂度为O(1),且只需遍历一次的实现
[LeetCode] Candy (分糖果),时间复杂度O(n),空间复杂度为O(1),且只需遍历一次的实现 原题: There are N children standing in a line. ...
- Codeforces 965 D. Single-use Stones(思维)
Codeforces 965 D. Single-use Stones 题目大意: 有一条河宽度为w,河上有一些石头,给出一组数(编号1~w-1),其中a[i]代表与河一岸距离为i的石头数量.每只青蛙 ...
- CSDN 分糖果算法的思路和求助
昨天晚上 在csdn上做了一道分糖果的题目,我自个测的是没有问题,但是提交答案后,老失败,提示 你的程序正常运行并输出了结果,但是答案错误你的程序输出结果与测试数据中的输出结果不符 我先把自个思路说一 ...
- codeforces 704B - Ant Man 贪心
codeforces 704B - Ant Man 贪心 题意:n个点,每个点有5个值,每次从一个点跳到另一个点,向左跳:abs(b.x-a.x)+a.ll+b.rr 向右跳:abs(b.x-a.x) ...
- hunnu11543:小明的烦恼——分糖果
Problem description 小明在班里一直是个非常公正的孩子.这点同学和老师都非常清楚,这不,老师每周都会从家里带来一些糖果.然后叫小明把糖果分给其它小朋友,但这个班里的同学都有一个非 ...
- C语言 · 分糖果
历届试题 分糖果 时间限制:1.0s 内存限制:256.0MB 问题描述 有n个小朋友围坐成一圈.老师给每个小朋友随机发偶数个糖果,然后进行下面的游戏: 每个小朋友都把自己的糖果分一 ...
- CodeForces - 50A Domino piling (贪心+递归)
CodeForces - 50A Domino piling (贪心+递归) 题意分析 奇数*偶数=偶数,如果两个都为奇数,最小的奇数-1递归求解,知道两个数都为1,返回0. 代码 #include ...
随机推荐
- 浏览器端-W3School-JavaScript:Location 对象
ylbtech-浏览器端-W3School-JavaScript:Location 对象 1.返回顶部 1. Location 对象 Location 对象 Location 对象包含有关当前 URL ...
- consumeQueue 和 indexFile 文件
broker 把消息写入 commitLog 后,还需要把消息的索引写入 consumeQueue 文件 和 indexFile 文件 // org.apache.rocketmq.store.Def ...
- VMware or VirtualBox+centos7 安装教程
一.准备工作:1.首次安装虚拟机时,需要的准备工作:打开intel的虚拟技术服务(否则安装centos系统时会报错).重启电脑,显示log时进入BIOS服务(不同电脑进入BIOS方式不同,一般是进入l ...
- Windows 10 无法访问共享的解决办法大全
本文前面介绍 Windows 10 操作系统无法访问其他电脑的共享文件夹,而其他电脑访问该共享可以访问的解决办法. 简单点说就是,你的操作系统是 Win10 ,你访问不了某台电脑的共享,但是别人可以. ...
- Web01_HTML
语法和规范: 1.所有的HTML文件后缀名都是以.html或者.htm结尾的,建议使用.html结尾 2.整个html文件分别由头部分<head></head>和体部分< ...
- 慕课网_Java Socket应用---通信是这样练成的
第1章 网络基础知识 1-1 网络基础简介 (10:21) 第2章 Java 中网络相关 API 的应用 2-1 Java 中的 InetAddress 的应用 (08:10) import java ...
- 关于java中设计原则总结(7)
开闭原则: 对于类,模块函数等扩展要开放,对于修改要关闭. 依赖倒置: 接口或抽象是高层,要面向高层编程,不应该面向实现类(实现类是低层)去变成. 单一职责: 对一个类,或者一个功能,只用负责一个职责 ...
- 解决ubuntu16.04 USB鼠标键盘使用卡顿
小米游戏本,键盘突然M建不能用,去了售后换了个键盘. 小米售后真的不想吐槽……入坑 键盘鼠标卡顿由于挂起导致失灵,每次需要激活所以卡顿 解决办法如下: 编辑如下文件配置 sudo vim /etc/l ...
- lua基础学习(五)
一.Lua 模块与包 模块类似于一个封装库,从 Lua 5.1 开始,Lua 加入了标准的模块管理机制,可以把一些公用的代码放在一个文件里,以 API 接口的形式在其他地方调用,有利于代码的重用和降低 ...
- excel常用快捷键和技巧
1. Ctrl+方向键,对单元格光标快速移动,移动到数据边缘(空格位置). 2. Ctrl+方向键,对单元格光标快速移动,移动到数据边缘(空格位置). 3. Ctrl+A,选择整张表. 4. Ctrl ...