您的位置:首页 > 其它

Educational Codeforces Round 34 (Rated for Div. 2)

2017-12-13 16:57 549 查看

这是我这个弱渣第一次正儿八经打codeforce的比赛

只水出来A题一道签到题,B题和C题只是有思路 但是并没有写出来 至于D E F就根本没有看 可能没有挑战的欲望吧 以后就算做不出来也会想一想思路的

总结一下 还是算法理解的不透彻 做题做的不够多 思路不够开阔

而且自己就掌握那一点算法 总是想着用 画蛇添足

看别人的代码是真的感受到了算法的魅力 简洁 大方

赶紧抓紧复习完 然后就可以愉快的写一个寒假的代码啦

接下来开始看一看题目

A

问题简述:本质上就是拿糖问题 一次拿3个或者7个 给定糖果的数量 求是否能拿糖成功

自己的写法dfs

#include<iostream>
using namespace std;
void dfs(int ans,int a);
int step[] = { 3,7 };
bool flag;
int main()
{
int T;
int a;
cin >> T;
while(T--)
{
cin >> a;
flag = false;
dfs(0, a);
if (flag == true)
cout << "YES" << endl;
else
cout << "NO" <<endl;
}
}
void dfs(int ans, int a)
{
int i;
int dans;
for (i = 0; i < 2; i++)
{
dans = step[i]+ans;
if (dans < a)
dfs(dans, a);
if(dans==a)
{
flag = true;
return;
}
if (dans > a)
return;
}
}


大神的写法

int main() {
int n, a;
cin >> n;
for (int i = 0; i < n; ++i) {
cin >> a;
bool flag = 0;
for (int j = 0; j < a && j * 3 <= a; ++j) {
for (int z = 0; z < a && j * 3 + z * 7 <= a; ++z) {
if (j * 3 + z * 7 == a) {
cout << "YES\n";
flag = 1;
break;
}
}
if (flag) break;
}
if (!flag) cout << "NO\n";
}
}


由于数据量并不是很大 所以说直接暴力搜索就好了 这种每次拿几个的题目如果情况不是很多的话暴力求解还ok

B

问题简述:打怪升级 并输出过程

自己的想法:第一开始想到的是bfs 然后后面不会写。。。输出的过程 就这样这道题没什么思路

大神的写法

我觉得是最朴实 最简单 最有效的方法吧

#include <bits/stdc++.h>
using namespace std;

int main() {
int h1, a1, c1, h2, a2, cnt = 0;
cin >> h1 >> a1 >> c1 >> h2 >> a2;
vector<string> ans;
while (h2 > 0) {
if (a2 < h1 || h2 - a1 <= 0) {
ans.push_back("STRIKE");
h2 -= a1;
h1 -= a2;
}
else {
ans.push_back("HEAL");
h1 += c1;
h1 -= a2;
}
}
cout << ans.size() << '\n';
for (int i = 0; i < ans.size(); ++i)
cout << ans[i] << '\n';
}


这题没做出来不应该的

C

问题简述:放盒子问题 要求盒子按大小排放 然后里面有盒子的不能继续放盒子

自己的想法:一开始想到是贪心法 就类似于剪木板 求开销最小的那题 也就是说 两个数最小的一定是树的相同级数之后再分上一层之类的

大神的写法

#include <bits/stdc++.h>
using namespace std;

int main() {
int n, a;
cin >> n;

map<int, int> c;

for (int i = 0; i < n; ++i) {
cin >> a;
c[a]++;
}
int sol = 0;
for (auto p : c) {
sol = max(sol, p.second);
}

cout << sol << '\n';

}


emmmm我没看懂。。。

就这样吧 等有时间来填这次比赛的坑,或者等我变强一点再来填坑(不存在的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  codeforces 算法