补题风向标——>>
假装题意知道
A:暴力合成一遍了
n=s.size();
m=t.size();
ss+=s;
tt+=t;
if (ss==tt) or not;
B:题意是给定 1个或者2个或者3个,先假设3个数啊:a,b,c;
每次你能a-9,b-3,c-1 类似如此过程,求最小操作数。DIV 1 650是加强版 数的个数<=50;
只会最暴力,然后DP数组保存状态,已经都最暴力了,所以不用想很多了
#include
#include
#include
#include
#include
#include
#include
using namespace std;
int a[123];
int dp[66][66][66];
int n;
int dfs(int x,int y,int z)
{
if (x<=0&&y<=0&&z<=0) return 0;
if (dp[x][y][z]) return dp[x][y][z];
int mx=1234;
mx=min(mx,dfs(max(0,x-1),max(0,y-3),max(0,z-9)));
mx=min(mx,dfs(max(0,x-1),max(0,y-9),max(0,z-3)));
mx=min(mx,dfs(max(0,x-3),max(0,y-1),max(0,z-9)));
mx=min(mx,dfs(max(0,x-3),max(0,y-9),max(0,z-1)));
mx=min(mx,dfs(max(0,x-9),max(0,y-3),max(0,z-1)));
mx=min(mx,dfs(max(0,x-9),max(0,y-1),max(0,z-3)));
return dp[x][y][z]=mx+1;
}
class MutaliskEasy
{
public:
int minimalAttacks(vector x)
{
n=x.size();
memset(dp,0,sizeof(dp));
sort(x.begin(),x.end());
for (int i=0;i q;
cin>>n;
for (int i=0;i>x;
q.push_back(x);
}
MutaliskEasy p;
cout<
C: 是DIV1 A
题目很炫酷啦;
给一颗树 X[I][J]=='O',表示I,J 长度为奇数,X[I][J]=='E' 表是为偶数 ‘?’ 不确定
先来第一份,类似floyd dp 找,我们知道奇数+偶数=奇数,其他全为偶数。
我们先判断 是否不满足答案 输出-1;
然后构造:0 到其他点 为奇数 连一条边,
0到Y Y到其他边 再连一条边,0->y 是奇书,0->其他边为偶数
虽然说得很容统,不过确实不会 ,想了很久,脑洞大。。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
DFS版。。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
正常人类版