Educational Codeforces Round 52 (Rated for Div. 2)
A. Vasya and Chocolate
题意
已知钱,价格,赠送规则求最多获得巧克力数
思路
常规算即可
代码
#include <bits/stdc++.h>
#define DBG(x) cerr << #x << " = " << x << endl;
using namespace std;
typedef long long LL; LL t,s,a,b,c; int main(){
cin >> t;
while(t--){
cin >> s >> a >> b >> c;
LL ans=s/c;
ans+=(ans/a)*b;
cout << ans << endl;
}
return 0;
}
B. Vasya and Isolated Vertices
题意
给出无向图点和边数问最多和最少孤立点的数量
思路
使孤立点尽可能少就让一条边尽可能消去两个点,否则让其尽可能消去一个点
代码
#include <bits/stdc++.h>
#define DBG(x) cerr << #x << " = " << x << endl;
using namespace std;
typedef long long LL; LL n,m,i; int main(){
scanf("%I64d%I64d",&n,&m);
while(i*(i-1)/2 < m)i++;
printf("%I64d %I64d\n",(m*2 < n) ? n-m*2 : 0,n-i);
return 0;
}
C. Make It Equal
题意
给出一些块柱,每次移动一层及以上所有块,在一次不移动超过k的前提下使所有柱高度一致的最少次数
思路
枚举当前移动的高度,使被移动的块尽可能接近k,需要预处理每层会影响的块数,枚举高度二分找位置,维护后缀即可完成预处理
代码
#include <bits/stdc++.h>
#define DBG(x) cerr << #x << " = " << x << endl;
const int inf = 0x3f3f3f3f;
const int maxn = 2e5+5;
using namespace std; int n,k,a[maxn],maxH=-inf;
int b[maxn];
vector<int>vec; int main(){
scanf("%d%d",&n,&k);
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
sort(a+1,a+1+n);
for(int i=2;i<=n;i++){
int det=a[i]-a[1];
maxH=max(maxH,det);
if(det)vec.push_back(det);
}
int siz=vec.size();
for(int i=maxH;i>=1;i--){
b[i]=lower_bound(vec.begin(),vec.end(),i)-vec.begin()+1;
b[i]=siz-b[i]+1;
b[i]+=b[i+1];
}
int now=0,cnt=0;
for(int i=maxH;i>=1;i--){
if(b[i]-now > k)now=b[i+1],cnt++;
}
if(now != b[1] && b[1]-now <= k)cnt++;
printf("%d\n",cnt);
return 0;
}
#include <bits/stdc++.h>
#define DBG(x) cerr << #x << " = " << x << endl;
const int maxn = 15;
const int maxm = 205;
const int inf = 0x3f3f3f3f;
using namespace std; int n,k;
int mp[maxn][maxn],vis[maxn][maxn],dp[maxn][maxn][3][maxm][maxm];
int sx,sy,ex,ey;
int dx1[8][2]={{-2,-1},{-2,1},{2,-1},{2,1},{-1,-2},{-1,2},{1,-2},{1,2}};
int dx2[4][2]={{-1,0},{1,0},{0,1},{0,-1}};
int dx3[4][2]={{-1,-1},{-1,1},{1,-1},{1,1}};
int ans=inf; struct node{
int r,c,who,time,pre;
node(int _r,int _c,int _who,int _time,int _pre){
r=_r,c=_c,who=_who,time=_time,pre=_pre;
}
}; void bfs(int sx, int sy) {
memset(dp, -1, sizeof dp);
dp[sx][sy][0][0][1] = dp[sx][sy][1][0][1] = dp[sx][sy][2][0][1] = 0;
queue<node>q;
q.push(node(sx, sy, 0, 0, 1));
q.push(node(sx, sy, 1, 0, 1));
q.push(node(sx, sy, 2, 0, 1));
while(!q.empty()) {
node nd = q.front();
q.pop();
int x = nd.r, y = nd.c, z = nd.who, t = nd.time, k = nd.pre;
for(int i = 0; i < 3; i++) {
if(i == z) continue;
if(dp[x][y][i][t + 1][k] != -1) continue;
dp[x][y][i][t + 1][k] = dp[x][y][z][t][k] + 1;
q.push(node(x, y, i, t + 1, k));
}
if(z == 0) {
for(int i = 0; i < 8; i++) {
int nx=x+dx1[i][0];
int ny=y+dx1[i][1];
int nk=k;
if(nx < 1 || nx > n || ny < 1 || ny > n) continue;
if(mp[nx][ny] == k + 1) nk++;
if(dp[nx][ny][z][t][nk] != -1) continue;
dp[nx][ny][z][t][nk] = dp[x][y][z][t][k] + 1;
q.push(node(nx, ny, z, t, nk));
}
}
if(z == 1) {
for(int i = 0; i < 4; i++) {
for(int j = 1;j <= 10;j++) {
int nx=x+j*dx2[i][0];
int ny=y+j*dx2[i][1];
int nk=k;
if(nx < 1 || nx > n || ny < 1 || ny > n) continue;
if(mp[nx][ny] == k + 1) nk++;
if(dp[nx][ny][z][t][nk] != -1) continue;
dp[nx][ny][z][t][nk] = dp[x][y][z][t][k] + 1;
q.push(node(nx, ny, z, t, nk));
}
}
}
if(z == 2) {
for(int i = 0; i < 4; i++) {
for(int j = 1;j <= 10;j++) {
int nx=x+j*dx3[i][0];
int ny=y+j*dx3[i][1];
int nk=k;
if(nx < 1 || nx > n || ny < 1 || ny > n) continue;
if(mp[nx][ny] == k + 1) nk++;
if(dp[nx][ny][z][t][nk] != -1) continue;
dp[nx][ny][z][t][nk] = dp[x][y][z][t][k] + 1;
q.push(node(nx, ny, z, t, nk));
}
}
}
}
}
int main(){///0 == knight,1 == bishop,2 == rook
scanf("%d",&n);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
scanf("%d",&mp[i][j]);
if(mp[i][j] == 1){sx=i;sy=j;}
if(mp[i][j] == n*n){ex=i;ey=j;}
}
}
bfs(sx,sy);
for(int i=0;i<maxm;i++){
for(int j=0;j<3;j++){
if(dp[ex][ey][j][i][n*n] != -1)ans=min(ans,dp[ex][ey][j][i][n*n]);
}
}
for(int i=0;i<maxm;i++){
for(int j=0;j<3;j++){
if(dp[ex][ey][j][i][n*n] == ans){printf("%d %d\n",ans,i);return 0;}
}
}
}
E. Side Transmutations
F. Up and Down the Tree
Educational Codeforces Round 52 (Rated for Div. 2)的更多相关文章
- Educational Codeforces Round 52 (Rated for Div. 2) E. Side Transmutations
http://codeforces.com/contest/1065/problem/E 数学推导题 #include <bits/stdc++.h> using namespace st ...
- Educational Codeforces Round 52 (Rated for Div. 2) -C
#include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> ...
- Educational Codeforces Round 52 (Rated for Div. 2) F. Up and Down the Tree 树型DP
题面 题意:给你一棵树,你起点在1,1也是根节点,你每次可以选择去你子树的某个叶子节点,也可以选择,从叶子节点返回距离不超过k的一个根, 也就是说,你从1开始,向下跳,选择一个叶子(就是没有子树的节点 ...
- Educational Codeforces Round 117 (Rated for Div. 2)
Educational Codeforces Round 117 (Rated for Div. 2) A. Distance https://codeforces.com/contest/1612/ ...
- Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship
Problem Educational Codeforces Round 60 (Rated for Div. 2) - C. Magic Ship Time Limit: 2000 mSec P ...
- Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems(动态规划+矩阵快速幂)
Problem Educational Codeforces Round 60 (Rated for Div. 2) - D. Magic Gems Time Limit: 3000 mSec P ...
- Educational Codeforces Round 43 (Rated for Div. 2)
Educational Codeforces Round 43 (Rated for Div. 2) https://codeforces.com/contest/976 A #include< ...
- Educational Codeforces Round 35 (Rated for Div. 2)
Educational Codeforces Round 35 (Rated for Div. 2) https://codeforces.com/contest/911 A 模拟 #include& ...
- Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings
Codeforces Educational Codeforces Round 44 (Rated for Div. 2) F. Isomorphic Strings 题目连接: http://cod ...
随机推荐
- 明天研究下jpa直接像django一样生成
https://blog.csdn.net/yztezhl/article/details/79390714 自动生成 教程-- https://blog.csdn.net/mxjesse/artic ...
- hotspot目录结构
Hotspot的目录结构 ├─agent Serviceability Agent的客户端实现 ├─make 用来build出HotSpot的各种配置文件 ├─src HotSpot VM的源代码 │ ...
- .NET Core 开源工具 IPTools - 快速查询 IP 地理位置、经纬度信息
快速查询IP信息,支持国内和国外IP信息查询,支持查询经纬度,地理位置最高支持到城市. 1. IPTools.China 快速查询中国IP地址信息,包含国家.省份.城市.和网络运营商.非中国IP只支持 ...
- 在Bootstrap开发框架中使用dataTable直接录入表格行数据(2)--- 控件数据源绑定
在前面随笔<在Bootstrap开发框架中使用dataTable直接录入表格行数据>中介绍了在Web页面中使用Jquery DataTable插件进行对数据直接录入操作,这种处理能够给用户 ...
- UE、UI、UCD、UED?职责划分?
UE.UI.UCD.UED?你知道你是干啥的吗 名词 UE (User Experience) : 用户体验 UI (User Interface) : 用户界面 UCD (User-Centered ...
- Python Revisited Day 07 (文件处理)
目录 7.1 二进制数据的读与写 7.1.1 带可选压缩的Pickle 7.1.2 带可选压缩的原始二进制数据 7.2 文本文件的写入与分析 7.2.1 写入文本 7.2.2 分析文本 7.2.3 使 ...
- [Alpha阶段]第二次Scrum Meeting
Scrum Meeting博客目录 [Alpha阶段]第二次Scrum Meeting 基本信息 名称 时间 地点 时长 第二次Scrum Meeting 19/04/04 大运村寝室6楼 90min ...
- 干货型up主
很多教学视频,我看了反射,正在看JAVAWEB 和Spring 讲得很清楚 反正就是很好!!! https://space.bilibili.com/326782142?spm_id_from=33 ...
- Array.prototype.reduce()
reduce() 方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值. arr.reduce([callback, initialValue]) c ...
- MacOS搭建本地服务器
MacOS搭建本地服务器 一,需求分析 1.1,开发app(ios android)时通常需往app中切入web页面,直接导入不行,故需搭建本地的测试网站服务,通过IP嵌入访问页面. 1.2,开发小程 ...