#include
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" <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";
}
}
我觉得是最朴实 最简单 最有效的方法吧
#include
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';
}
#include
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我没看懂。。。
就这样吧 等有时间来填这次比赛的坑,或者等我变强一点再来填坑(不存在的