quick save

news/2025/11/5 20:50:23/文章来源:https://www.cnblogs.com/lymsHz17/p/19173073

群星联结,调不动了;

// code by 樓影沫瞬_Hz17
#include <iostream>
#include <map>
#include <vector>
#include <algorithm>struct Chara;
struct Talent;
struct Attack;int turn;
int n; struct Talent {Chara *me;int pat, x, y;Talent() {pat = x = y = 0;}
};struct Buff {using type_buff = std::pair<int, int>;int miege; bool st_miege;Chara *me;#define num first#define tim secondstd::vector<type_buff> mp, def, atk;void settle();Buff() {miege = st_miege = 0;}
};struct Chara {int hp, HP, mp, MP, atk, __atk, def, __def;bool life;struct Skill_C {int pat, x, y, z;Skill_C() {pat = x = y = z = 0;}} skill;std::vector<Chara*> aims, teamate;Talent talent;Buff buff;Chara() {hp = HP = mp = MP = atk = __atk = def = __def = 0;life = 1; }void del_aim(Chara*to) {for(auto it = aims.begin(); it != aims.end(); it ++) {if(*it == to) {aims.erase(it);return;}}}void del_mate(Chara*to) {for(auto it = teamate.begin(); it != teamate.end(); it ++) {if(*it == to) {teamate.erase(it);return;}}}void erase() {life = 0;for(Chara *enemy : aims) {enemy->del_aim(this);}for(Chara *mate : teamate) {mate->del_mate(this);}}int tmp_atk() {int res = 0;for(auto v : buff.atk) {if(v.tim > 0) res += v.num;}return res;}int tmp_def() {int res = 0;for(auto v : buff.def) {if(v.tim > 0) res += v.num;}return res;}int A() { return std::max(atk + __atk + tmp_atk(), 1); }int D() { return std::max(def + __def + tmp_def(), 0); }void Heal(int x) { hp = std::min(hp + x, HP); }void Mana(int x) { mp = std::min(mp + x, MP); }
};Chara tm[3][1000];void GAMEOVER() {int sm1 = 0, sm2 = 0;for(int i = 1; i <= n; i ++) sm1 += tm[1][i].life;for(int i = 1; i <= n; i ++) sm2 += tm[2][i].life;if(sm1) {std::cout << turn << '\n';std::cout << "Alice\n";for(int i = 1; i <= n; i ++) {Chara m = tm[1][i];std::cout << std::max(m.hp, 0) << ' ';}exit(0);} if(sm2) {std::cout << turn << '\n';std::cout << "Bob\n";for(int i = 1; i <= n; i ++) {Chara m = tm[2][i];std::cout << std::max(m.hp, 0) << ' ';}exit(0);}
}void Dead(Chara *me) {if(me->hp <= 0) me->erase();if(me->teamate.size() == 0) GAMEOVER();
}void Buff::settle() {if(st_miege) {miege --;if(!miege) {me->hp = -1145;Dead(me);}}for(auto& v : mp) v.tim --; for(auto& v : def) v.tim --; for(auto& v : atk) v.tim --; 
}int hit(Chara *me, Chara *to, int x, int pat) {if(pat) to->hp -= std::max(x - to->D(), 0);Dead(to);return std::min(to->hp, std::max(x - to->D(), 0));
}int hit_ndef(Chara *me, Chara *to, int x, int pat) {if(to->talent.pat == 1) {if(pat) to->hp -= x - x / 2;Dead(to);return std::min(to->hp, x - x / 2);}if(pat) to->hp -= x;Dead(to);return std::min(to->hp, x);
}struct Skills {void xtbl(Chara *me) {}void glzl(Chara *me, int x) {for(Chara* enemy : me->aims) {enemy->Mana(1);hit(me, enemy, x, 1);enemy->mp -= enemy->mp / 10;}}void rszy(Chara *me) {for(Chara *enemy : me->aims) {enemy->Mana(1);hit_ndef(me, enemy, me->A(), 1);}}void tlbdj(Chara *me, int x) {for(Chara *enemy : me->aims) {enemy->Mana(1);hit(me, enemy, std::min(enemy->HP / 10, x * me->A()), 1);}}void ycks(Chara *me, int x, int y) {for(Chara *mate : me->teamate) {mate->buff.mp.push_back({y, x});}}void tlsz(Chara *me, int x) {Chara *enemy = me->aims.front();enemy->__def -= x;enemy->Mana(1);hit_ndef(me, enemy, me->A(), 1);}void txcls(Chara *me, int x, int y) {Chara *enemy = me->aims.front();enemy->Mana(1);hit_ndef(me, enemy, me->A(), 1);for(Chara *enemy : me->aims) {enemy->buff.atk.push_back({-y, x});}}void jgzf(Chara *me, int x, int y, int z) {Chara *mi; int min = INT32_MAX;for(Chara *mate : me->teamate) {if(mate->hp < min) {min = mate->hp;mi = mate;}mate->buff.atk.push_back({y, x});}mi->Heal(z);}void lx(Chara *me, int x, int y) {for(Chara *enemy : me->aims) {enemy->Mana(1);hit(me, enemy, me->A(), 1);}for(Chara *enemy : me->aims) {enemy->buff.def.push_back({-y, x});}}void jlbh(Chara *me, int x, int y, int z) {for(Chara *mate : me->teamate) {mate->Heal(z);mate->buff.def.push_back({-y, x});}}void qlcqk_lhzzm(Chara *me, int x) {for(Chara *mate : me->teamate) {mate->atk *= 2;mate->def *= 2;mate->hp = std::max(mate->HP / 2, mate->hp);mate->mp = std::max(mate->MP / 2, mate->mp);mate->buff.mp.push_back({1, INT32_MAX});mate->buff.st_miege = 1;mate->buff.miege = x;}for(Chara *mate : me->teamate) if(mate->skill.pat == 10) mate->skill.pat = 0;for(Chara *enemy : me->aims) if(enemy->skill.pat == 10) enemy->skill.pat = 0;}
} skl;
void us_skill(Chara *me) {int x = me->skill.x, y = me->skill.y, z = me->skill.z;me->mp = 0;switch (me->skill.pat) {case 0: skl.xtbl(me); break;case 1: skl.glzl(me, x); break;case 2: skl.rszy(me); break;case 3: skl.tlbdj(me, x); break;case 4: skl.ycks(me, x, y); break;case 5: skl.tlsz(me, x); break;case 6: skl.txcls(me, x, y); break;case 7: skl.jgzf(me, x, y, z); break;case 8: skl.lx(me, x, y); break;case 9: skl.jlbh(me, x, y, z); break;case 10: skl.qlcqk_lhzzm(me, x); break;}if(me->talent.pat == 5) me->Mana(me->talent.y);
}void resume(Chara *me) {if(me->talent.pat == 3) {me->Heal(me->talent.x);me->Mana(me->talent.y);}for(auto v : me->buff.mp) if(v.tim > 0) me->Mana(v.num); me->Mana(1);
}int attack(Chara *me, Chara *to, int pat) {int res = 0;if(pat) to->Mana(1);if(me->talent.pat == 4) return std::min(to->hp, hit_ndef(me, to, me->A(), pat));if(me->talent.pat == 2) res += hit_ndef(me, to, me->talent.y, pat);res += hit(me, to, me->A(), pat);if(me->talent.pat == 5 and pat) me->Heal(me->talent.x);return std::min(to->hp, res);
}void debug() {std::cout << turn << '\n';std::cout << "Alice\n";for(int i = 1; i <= n; i ++) {Chara m = tm[1][i];std::cout << std::max(m.hp, 0) << ' ';}std::cout << "\nBob\n";for(int i = 1; i <= n; i ++) {Chara m = tm[2][i];std::cout << std::max(m.hp, 0) << ' ';}std::cout << "\n\n";fflush(stdout);
}void ran(int t) {int mx = -1;Chara *id = 0;for(int i = 1; i <= n; i ++) { Chara*m = &tm[t][i];if(m->life) if(m->mp == m->MP) if(m->skill.pat >= mx) {mx = m->skill.pat, id = m;}}if(mx != -1) {std:: cout << "team " << t << " who that us_skill is " << id - tm[t] << '\n';us_skill(id);return;}int dmg = 0;for(int i = 1; i <= n; i ++) {Chara*m = &tm[t][i];if(m->life) {if(m->aims.front()->hp > mx) {id = m;mx = m->aims.front()->hp;dmg = attack(m, m->aims.front(), 0);}else if(m->aims.front()->hp == mx) {int tdmg = attack(m, m->aims.front(), 0);if(tdmg >= dmg) {id = m;dmg = tdmg;}}}}std:: cout << "team " << t << "; " << id - tm[t] << " attack " << id->aims.front() - tm[t == 1 ? 2 : 1] << '\n';// std:: cout << "\t" << id->A() << ' ' << id->aims.front()->D() << '\n';attack(id, id->aims.front(), 1);
}void end(int t) {for(int i = 1; i <= n; i ++) {Chara *m = &tm[t][i];if(!m->life) continue;m->Mana(1);if(m->talent.pat == 3) {m->Heal(m->talent.x);m->Mana(m->talent.y);} for(auto pp : m->buff.mp) if(pp.tim > 0) m->Mana(pp.num);}
}void endall() {for(int i : {1, 2})for(int j = 1; j <= n; j ++) {auto*m = &tm[i][j];if(!m->life) continue;m->buff.settle();}
}int main() {#ifndef ONLINE_JUDGEfreopen("in.ru", "r", stdin);freopen("out.ru", "w", stdout);#endifstd::cin >> n;for(int i = 1; i <= n; i ++) {Chara tmp; std::cin >> tmp.HP >> tmp.MP >> tmp.atk >> tmp.def;tmp.hp = tmp.HP;for(int j = 1; j <= n; j ++) {int x; std::cin >> x;tmp.aims.push_back(&tm[2][x]);}std::cin >> tmp.talent.pat >> tmp.talent.x >> tmp.talent.y;std::cin >> tmp.skill.pat >> tmp.skill.x >> tmp.skill.y >> tmp.skill.z;for(int j = 1; j <= n; j ++) {tmp.teamate.push_back(&tm[1][j]);}tm[1][i] = tmp;tm[1][i].talent.me = &tm[1][i];tm[1][i].buff.me = &tm[1][i];}for(int i = 1; i <= n; i ++) {Chara tmp;std::cin >> tmp.HP >> tmp.MP >> tmp.atk >> tmp.def;tmp.hp = tmp.HP;for(int j = 1; j <= n; j ++) {int x; std::cin >> x;tmp.aims.push_back(&tm[1][x]);}std::cin >> tmp.talent.pat >> tmp.talent.x >> tmp.talent.y;std::cin >> tmp.skill.pat >> tmp.skill.x >> tmp.skill.y >> tmp.skill.z;for(int j = 1; j <= n; j ++) {tmp.teamate.push_back(&tm[2][j]);}tm[2][i] = tmp;tm[2][i].talent.me = &tm[2][i];tm[2][i].buff.me = &tm[2][i];}while(1) {turn ++;ran(1);end(1);ran(2);end(2);endall();debug();std::cout << "MPofT1 = " << tm[1][3].mp << '\n';std::cout << "MPofT2 = " << tm[2][3].mp << '\n';}
}   
// 星間~ 干渉~ 融解~ 輪迴~ 邂逅~ 再生~ ララバイ~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/957131.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

cg0EoeZwd/bdvtAmh0q4PjjA4Pc=

这是郑州西亚斯学院智能体创新大赛的示例文件,如果你看到这个信息,说明这个文件的内容已经正常发送。

openwrt 使用 移动WIFI USB RNDIS 上网

最初为了简单,是使用 无线中继方式上网,但是有时不稳定,而移动WIFI 也支持 RNDIS 方式。 打开编译配置以下功能: 编译完成后,升级后插入USB 线测试[ 110.492259] usb 1-1: new high-speed USB device number 2 u…

【Agent】 ACE(Agentic Context Engineering)源码阅读笔记 ---(2)--- 训练

[Agent] ACE(Agentic Context Engineering)源码阅读笔记---(2)训练 目录[Agent] ACE(Agentic Context Engineering)源码阅读笔记---(2)训练0x00 概要0x01 AdapterBase1.1 定义1.2 核心流程1.3 主要功能1.4 Off…

Codeforces Global Round 28 VP 记录

Codeforces Global Round 28 VP 记录 Dashboard - Codeforces Global Round 28 - Codeforces 之前做过 G,赛时从 A 做到了 G,赛后做了 H,看题解会了 I1,I2 还不会。 CF2048A Kevin and Combination Lock 判断是否是…

20251104NOIP模拟

NOIP模拟总结 这场并没有打好 A 预计:100,实际:100思路历程:我先考虑去把所有点按要求的道路种类分开,判断是否联通,是否是一条链,其中每个点要求的个数是否满足条件,可以发现这个做法会超时,因为在不同颜色的…

软件工程团队项目第一次作业

软件工程团队项目第一次作业这个作业属于哪个课程 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering这个作业要求在哪里 https://edu.cnblogs.com/campus/fzu/202501SoftwareEngineering/homework/13573…

开源一个月Star破7000+!RustFS凭什么火出圈?

开源一个月Star破7000+!RustFS凭什么火出圈?2025年,当存储领域似乎已被MinIO、Ceph等老牌玩家瓜分完毕时,一个基于Rust语言的新星RustFS却在开源一个月内狂揽​7000+ Star​,三个月突破​10.3k,成为GitHub上星标…

第五届日月盾杯线下赛 web wp

记一次校赛ctf的web题解。。其实我打的时候一道都没做出来(目移)签个到吧!签到题也没能做出来的我属实是fw啊。。orz 进入题目后会跳转到一个公网上,有重定向,于是使用curl -v来查看原始响应,即可获得flag是的就…

异常课后作业2

Java项目中常用异常处理场景与实践总结 在Java项目开发中,异常处理是保障程序健壮性、可维护性的关键环节。合理的异常处理不仅能避免程序崩溃,还能为问题排查、用户体验优化提供有力支撑。本文将围绕Java项目中常见…

日总结 22

nvm(Node Version Manager)是一款轻量实用的 Node.js 版本管理工具,支持在同一设备上安装、卸载多个不同版本的 Node.js,可快速切换版本以适配不同项目的依赖需求,无需手动配置安装路径,能有效解决多项目开发中 …

Nlog配置文件nlog.config (.net core 6)

<?xml version="1.0" encoding="utf-8" ?> <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quo…

重组抗体:从 “天然提取” 到 “基因定制”,抗体技术如何改写生物医药格局?

提到 “抗体”,你可能会想到疫苗接种后身体产生的 “免疫卫士”—— 但在科研、诊断和治疗中,我们需要的往往是 “精准可控” 的抗体。传统抗体(如多克隆抗体、杂交瘤单克隆抗体)要么特异性差、要么生产不稳定,而…

2025年主流数据分类分级工具全面对比与选型指南

2025年主流数据分类分级工具全面对比与选型指南在数据安全法规日益严格的2025年,企业选择合适的数据分类分级工具已成为合规运营和风险管控的核心环节。本文从实际选型需求出发,通过六大关键维度深度对比市场主流产品…

Http协议解析

一、概述 超文本传输协议(Hyper Text Transfer Protocol,简称HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。 1.1 发展历史起源:HTTP的发展是由蒂姆伯纳斯-李于1989…

大模型应用开发技术路线(下):智能代理与多模态应用开发指南

本文系统阐述智能代理与多模态应用的开发技术,从架构设计到实战落地,涵盖智能代理的四大设计模式与四步开发法,多模态应用的模型选择与模态融合策略,并总结五大常见陷阱及解决方案,助力开发者构建自主可控、自然高…

NOIP 2024 T4 树上查询 小结

这个也是写给自己看的。 首先可以看每一种答案取到的范围。 然后就是两个区间求交的长度会大于等于 k。 这个比较好求。 稍微有点难的部分就是他的答案区间被我的目标区间包含。 这个我一开始在考场上写的是 cdq,然后…

高性能计算-CUDA-mma PTX 指令行为分析

1. 介绍:PTX 指令集中 WMMA 矩阵计算从共享内存加载数据到 fragment 片段使用的封装API是 load__matrix_sync,其底层 PTX指令与mma 一致,并且 fragment 布局一致。本文介绍底层 ldamatrix、stmatrix 指令的行为,并…

NOIP 2022 T3 建造军营 小结

写给自己看的。 这个题比 T2 简单多了。 就是你显然考虑缩点。 缩完之后就变成了一棵树。 那么对于这棵树你就可以进行 dp 了。 设 \(f_{i,0/1}\) 表示 \(i\) 子树内是否有军营。 转移还是比较好写的。 就是要预处理出…

英语_阅读_Digital classroom_待读

Education has undergone significant changes over the past century. 教育在过去的一个世纪中经历了重大的变革。 In the past, traditional education was the norm, with students sitting in classrooms and lear…