2017 BJ ICPC 石子合并变种 向量基本功及分类考察
E
模拟
#include <bits/stdc++.h>
#define PI acos(-1.0)
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define pb push_back
#define inf 1e9
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que; get min
const double eps = 1.0e-10;
const double EPS = 1.0e-4;
typedef pair<int, int> pairint;
typedef long long ll;
typedef unsigned long long ull;
//const int maxn = 3e5 + 10;
const int turn[][] = {{, }, { -, }, {, }, {, -}};
//priority_queue<int, vector<int>, less<int>> que;
//next_permutation
int cat[];
priority_queue<pair<int, int>, vector<pair<int, int> >, greater<pair<int, int> > > que;
int main()
{
int m, n, x;
while (cin >> m >> n >> x)
{
int anser1 = m;
int anser2 = ;
for (int i = ; i <= n; i++)
{
scanf("%d", &cat[i]);
que.push(make_pair(, cat[i]));
}
while (!que.empty())
{
pair<int, int> cnt = que.top();
if (cnt.first >= x)
{
que.pop();
continue;
}
else
{
que.pop();
if (anser1 > )
{
cnt.first += cnt.second;
if (cnt.first <= x)
{
anser1--;
}
else
{
anser1--;
anser2++;
}
que.push(cnt);
}
}
}
cout << anser1 << " " << anser2 << endl;
}
}
F
#include <bits/stdc++.h>
#define PI acos(-1.0)
#define mem(a,b) memset((a),b,sizeof(a))
#define TS printf("!!!\n")
#define pb push_back
#define inf 1e9
//std::ios::sync_with_stdio(false);
using namespace std;
//priority_queue<int,vector<int>,greater<int>> que; get min
const double eps = 1.0e-10;
const double EPS = 1.0e-4;
typedef pair<int, int> pairint;
typedef long long ll;
typedef unsigned long long ull;
//const int maxn = 3e5 + 10;
const int turn[][] = {{, }, { , }, { , -}, { -, }};
//priority_queue<int, vector<int>, less<int>> que;
//next_permutation
char f[][];
char ans[];
char anser[][];
int pop = ;
int dx, dy;
int dir;
int n;
bool check(int x, int y)
{
if (x > n || x < )
{
return false;
}
if (y > n || y < )
{
return false;
}
if (anser[x][y] != '.')
{
return false;
}
return true;
}
int main()
{
while (cin >> n)
{
for (int i = ; i <= ; i++)
{
for (int j = ; j <= ; j++)
{
anser[i][j] = '.';
}
}
dir = ;
dx = dy = ;
pop = ;
for (int i = ; i <= n; i++)
{
scanf("%s", f[i] + );
}
for (int i = ; i <= n + ; i++)
{
if (i % == )
{
for (int j = i - ; j >= ; j--)
{
ans[++pop] = f[j][i - j];
}
}
else
{
for (int j = ; j <= i - ; j++)
{
ans[++pop] = f[j][i - j];
} }
}
for (int i = n + ; i <= * n; i++)
{
if (i % == )
{
for (int j = n; j >= i - n; j--)
{
ans[++pop] = f[j][i - j];
} }
else
{
for (int j = i - n; j <= n; j++)
{
ans[++pop] = f[j][i - j];
}
}
}
// for (int i = 1; i <= pop; i++)
// {
// cout << ans[i];
// }
// cout << endl;
for (int i = ; i <= pop; i++)
{
//cout<<dx<<" "<<dy<<endl;
anser[dx][dy] = ans[i];
if (!check(dx + turn[dir][], dy + turn[dir][]))
{
dir = (dir + ) % ;
}
dx = dx + turn[dir][];
dy = dy + turn[dir][];
}
for (int i = ; i <= n; i++)
{
for (int j = ; j <= n; j++)
{
cout << anser[i][j];
}
cout << endl;
}
}
}
J
石子合并 不过合并的范围由2变为L-R(2<=L<=R<=N) 问你最少的花费是多少
2017 BJ ICPC 石子合并变种 向量基本功及分类考察的更多相关文章
- RQNOJ 490 环形石子合并
题目链接:https://www.rqnoj.cn/problem/490 题目描述 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一 ...
- codevs1048 石子合并
题目链接:http://codevs.cn/problem/1048/ 题目描述 Description 有n堆石子排成一列,每堆石子有一个重量w[i], 每次合并可以合并相邻的两堆石子,一次合并的代 ...
- 石子合并[DP-N3]
题目描述 在一个园形操场的四周摆放N堆石子,现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆合并成新的一堆,并将新的一堆的石子数,记为该次合并的得分. 试设计出1个算法,计算出将N堆石子合并成1 ...
- 51Nod 1021 石子合并 Label:Water DP
N堆石子摆成一条线.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的代价.计算将N堆石子合并成一堆的最小代价. 例如: 1 2 3 4,有 ...
- BZOJ 3229: [Sdoi2008]石子合并
3229: [Sdoi2008]石子合并 时间限制: 3 Sec 内存限制: 128 MB提交: 497 解决: 240[提交][][] 题目描述 在一个操场上摆放着一排N堆石子.现要将石子有次序 ...
- nyoj 737 石子合并(一)。区间dp
http://acm.nyist.net/JudgeOnline/problem.php?pid=737 数据很小,适合区间dp的入门 对于第[i, j]堆,无论你怎么合并,无论你先选哪两堆结合,当你 ...
- BZOJ-3229 石子合并 GarsiaWachs算法
经典DP?稳T 3229: [Sdoi2008]石子合并 Time Limit: 3 Sec Memory Limit: 128 MB Submit: 426 Solved: 202 [Submit] ...
- BZOJ3229 石子合并
Description 在一个操场上摆放着一排N堆石子.现要将石子有次序地合并成一堆.规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分. 试设计一个算法,计算出将N堆石 ...
- [NYIST737]石子合并(一)(区间dp)
题目链接:http://acm.nyist.edu.cn/JudgeOnline/problem.php?pid=737 很经典的区间dp,发现没有写过题解.最近被hihocoder上几道比赛题难住了 ...
随机推荐
- Linx下Keepalived做成服务
在/usr目录下面执行: find -name keepalived 返回如下: ./sbin/keepalived ./local/sbin/keepalived ./local/etc/keepa ...
- webService框架CXF的简单使用
最近本来已经将上一个项目交活,全身心投入了另外项目的前端的开发工作.可之前的项目经理通知我,之前的项目需要做一个webService的功能,于是稍微做了一下webService,可是忘了通知我现在的项 ...
- SSTap | ProxyCap
SSTap SSTap 全称 SOCKSTap, 是一款利用虚拟网卡技术在网络层实现的代理工具.SSTap 能在网络层拦截所有连接并转发给 HTTP, SOCKS4/5, SHADOWSOCKS(R ...
- 【MM系列】SAP 通过原材料找到成品的函数
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 通过原材料找到成品的函数 ...
- springBoot(2) HelloWorld
首先 下载一个 Spring Boot环境. 下载地址:https://spring.io/tools3/sts/all 打开STS.exe 一,新建项目 然后在空白处新建: 1.New→Other→ ...
- 【LeetCode】121、买卖股票的最佳时机
Best Time to Buy and Sell Stock 题目等级:Easy 题目描述: Say you have an array for which the ith element is t ...
- 应用安全 - 工具 - 浏览器 - IE浏览器 - 漏洞汇总
CVE-2014-6332 Date 2014.11 CVE-2016-0189 | MS16-051 Date 2016年初 CVE-2018-8174
- Double类型的数值 在写入excel时 如何去掉 科学计算法的 后面数值+ E的 情况
Double start = 20190724100000.000; 写入excel时 是 201907E+13 但想要输出的是 20190724100000 这种格式 Java在java.math包 ...
- C语言第八周编程作业
这个作业属于哪个课程 C语言程序设计 这个作业要求在哪 https://edu.cnblogs.com/campus/zswxy/computer-scienceclass3-2018/hom ...
- https=http+ssl
TLS/SSL中使用了非对称加密,对称加密以及HASH算法.握手过程的具体描述如下: 浏览器将自己支持的一套加密规则发送给网站. 网站从中选出一组加密算法与HASH算法,并将自己的身份信息以证书的形式 ...