装备合成_

// Problem: 装备合成
// Contest: NowCoder
// URL: https://ac.nowcoder.com/acm/contest/22353/L
// Memory Limit: 524288 MB
// Time Limit: 2000 ms
// 2022-04-28 14:56:11
// 
// Powered by CP Editor (https://cpeditor.org)

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

#define rep(i,l,r) for(int i=(l);i<=(r);i++)
#define per(i,l,r) for(int i=(l);i>=(r);i--)
#define ll long long
#define mset(s,t) memset(s,t,sizeof(t))
#define mcpy(s,t) memcpy(s,t,sizeof(t))
#define fi first
#define se second
#define pb push_back
#define all(x) (x).begin(),(x).end()
#define SZ(x) ((int)(x).size())
#define mp make_pair

typedef pair<int, int> pii;
typedef pair<ll, ll> pll;
typedef vector<int> vi;   
typedef vector<ll> Vll;               
typedef vector<pair<int, int> > vpii;
typedef vector<pair<ll, ll> > vpll;                        

const ll mod = 1e9 + 7;
//const ll mod = 998244353;
const double pi  = acos(-1.0);
inline ll ksc(ll x,ll y,ll mod)
{
    ll ans = 0;
    while (y) {
    	if (y & 1)
    		ans = (ans + x) %mod;
    	y >>= 1;
    	x = (x + x) %mod;
	}
	return ans;
}
inline ll qmi (ll a, ll b) {
	ll ans = 1;
	while (b) {
		if (b & 1) ans = ans * a;
		a = a * a;
		b >>= 1;
	}
	return ans;
}
inline int read () {
	int x = 0, f = 0;
	char ch = getchar();
	while (!isdigit(ch)) f |= (ch=='-'),ch= getchar();
	while (isdigit(ch)) x = x * 10 + ch - '0', ch = getchar();
	return f?-x:x;
}
template<typename T> void print(T x) {
	if (x < 0) putchar('-'), x = -x;
	if (x >= 10) print(x/10);
	putchar(x % 10 + '0');
}
inline ll sub (ll a, ll b) {
	return ((a - b ) %mod + mod) %mod;
}
inline ll add (ll a, ll b) {
	return (a + b) %mod;
}
// inline ll inv (ll a) {
	// return qmi(a, mod - 2);
// }

int x, y;
bool check (int mid) {
	int L = max(0, 4 * mid - x);
	int R = min(2 * mid, y - mid);
	if (L == R && L % 2 == 0)
		return 1;
	return L  < R;
		
}
void solve() {
	cin >> x >> y;
	int l = 0, r = x + y;
	while (l < r) {
		int mid = l + r + 1>>1;
		if (check(mid)) l = mid;
		else r = mid - 1;
	}
	cout << l << endl;
}
int main () {
	// ios::sync_with_stdio(0),cin.tie(0), cout.tie(0);
    int t;
    t =1;
    cin >> t;
    while (t --) solve();
    return 0;
}



操作工是的工具,移动项,尝试把一边变成与一个变量有关的 假设判定的答案是mid, 第一个武器是k 0<=k*2 + (mid - k) * 4 <= a 0<=k * 3 + (mid - k) <= b 0<=k<=mid

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Unity中使用UGUI实现装备合成树的步骤如下: 1. 设计装备合成树的结构:装备合成树是一个有层级关系的树形结构,每个节点代表一个装备,节点之间通过合成关系连接。可以使用脚本或者数据结构来定义装备节点和合成关系。 2. 创建UI界面:在Unity中创建一个Canvas对象,并添加需要的UI元素,比如按钮、文本等,用来显示装备合成树。 3. 绘制节点:使用UGUI提供的Button或者Image等UI组件,绘制每个装备节点的图标,并设置对应的合成信息和按钮事件等。 4. 布局节点:根据装备合成树的结构,将装备节点按照层级和位置进行布局,可以使用UGUI中的Layout组件来实现自动布局。 5. 添加交互:为每个装备节点的按钮添加事件监听,当点击某个装备节点时,根据节点的合成信息刷新树的显示内容,比如显示合成材料和合成结果等。 6. 更新合成树:当成功合成某个装备后,需要更新装备合成树的结构和显示内容,可以使用脚本来实现树的动态更新。 7. 状态管理:根据游戏逻辑和玩家行为,需要考虑装备合成树节点的状态管理,比如显示已拥有的装备节点和未解锁的装备节点等。 8. 界面优化:为了提升用户体验,可以考虑添加特效、动画和过渡效果等,使装备合成树的界面更加活跃和吸引人。 通过上述步骤,在Unity中使用UGUI可以实现一个功能完善的装备合成树界面,为玩家提供更好的游戏体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值