猪国杀 - 可读版本 https://mubu.com/doc/2707815814591da4 题目可真长,读题都要一个小时. 这道题很多人都说不可做,耗时间,代码量大,于是,本着不做死就不会死的精神,本蒟蒻强行斯巴达了这群猪. 为了给后面入坑的人一些提醒,本题题目较长,请耐心读完题目,否则会导致T,WA,E,特别想吃猪肉和丢脸. 据说如果你耐心照着题目打你会得到30分,于是良心的我就先说一些题目没说或说的模糊或会坑你半个小时的东西. 1.n<=10. 2.牌堆会被摸完,此时一直取最后一张.(…
Description 太长就不贴过来了 Solution 这个题是真的不难写……唯一的难度就在于理解题意上面……感觉这就是个阅读理解题啊…… 而且你三国杀玩的越多可能就越难写因为你无法理解那些猪的思维…… Asia:这些猪会强制把你变得和他们一样sb,然后用他们丰富的sb经验来打败你 细节就不说了……说几个我写挂或者遗漏的点吧: 1.手牌不要从左扫到右扫完一遍就结束了……可能后面发生了什么事件导致你前面的牌又可以用了. 2.无懈可击的写法:我是不停的递归下去直到一方没有无懈可击为止 不知道有没…
“此题注意样例少了个J,且牌堆可能用完牌,若牌用完则不停取最后一张”.——hzwer 然后直接模拟,认真读题,理清思路. #include<cstdio> #include<list> #include<cstdlib> #define FOR(a,k)\ for(iter k=p[a].begin();k!=p[a].end();++k) using namespace std; const int N=10; int n,m,hp[N],st[N]; bool id…
Luogu2482 [SDOI2010]猪国杀 题意 ...... https://www.luogu.org/problemnew/show/P2482 总结 首先说一下代码的构思: 首先确定了所有的状态表示(例如游戏中游戏结束,不管有没有用),然后确定了所有属性什么的. 然后构思结构体的表达,并且从全局代码考虑需不需要这样设计(因为这个重构了一次,一开始写的结构体内的表示方法代码量大) 然后在结构体内写函数 然后提前分配好一些会用的全局变量,保存状态 然后先把程序入口输入输出写了 然后按照回…
1972: [Sdoi2010]猪国杀 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 364  Solved: 204[Submit][Status][Discuss] Description 概述     <猪国杀>是一种多猪牌类回合制游戏,一共有三种角色:主猪,忠猪,反猪.     每局游戏主猪有且只有一只,忠猪和反猪可以有多只,每只猪扮演一种角色.     游戏目的     主猪(MP):自己存活的情况下消灭所有的反猪.     忠猪(ZP)…
点此看题面 大致题意: 让你模拟一个游戏猪国杀的过程. 几大坑点 对于这种模拟题,具体思路就不讲了,就说说有哪些坑点. 题面有锅,反猪是\(FP\). 数据有锅,牌堆中的牌可能不够用,牌堆为空之后需一直抽最后一张牌. 主猪杀死忠猪后猪哥连弩也要清除. 无懈可击也可以用无懈可击抵消. 使用决斗的猪可能死亡. 无懈可击是从使用锦囊牌的猪开始轮流选择是否响应. 使用完一张牌后(不包括桃)有可能会导致之前跳过的杀或决斗有对象使用,因此要重新扫描一遍. 只有主猪会特别针对类反猪. 如果杀死某只反猪后游戏结…
我对模拟的理解:https://www.cnblogs.com/AKMer/p/9064018.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem.php?id=1972 一个好看的题面传送门:https://mubu.com/doc/2707815814591da4 因为这两个月比较忙(其实是颓得太多了--),所以猪国杀昨晚\(0\)点左右才A掉. 总用时,不超过24小时吧. 总结了以下坑点,其余的按题面模拟就对了: \(1.决斗导致自己死…
题目大意:猪国杀,又一道大模拟题 题解:模拟,对于一个没有玩过三国杀的人来说,一堆细节不知道,写的十分吃力 卡点:无数,不想说什么了,这告诉我要多玩游戏 C++ Code: #include <algorithm> #include <cstdlib> #include <cstdio> #include <iostream> #include <map> #include <queue> #include <vector>…
猪国杀,模拟题的一颗耀眼的明珠,成长大牛.锻炼码力必写题! 模拟题没什么思维难度.只要按部就班地去做就是.模拟简单在这,难也在这.因为题面巨长,条件巨多,忽疏一点都有可能全盘皆输.故推荐考试时碰见了,除非真的闲的没事,否则尽量不要碰.一旦陷入细节混乱的深渊,估计一上午/下午的考试就混过去了. 总结一下做题的注意点: 1.审题是最基本的! 做大模拟题时,必须要认真读题,可能的话,要把所有条件都列举出来(不然就会像我一样,调了一上午才发现就是忘了几个题目中提到的条件或要求). 2.理清思路. 不要吝…
好玩的模拟题. 以后要经常写模拟题鸭 题目描述 游戏背景 <猪国杀>是一种多猪牌类回合制游戏,一共有\(3\)种角色:主猪,忠猪,反猪.每局游戏主猪有且只有\(1\)只,忠猪和反猪可以有多只,每只猪扮演\(1\)种角色. 游戏目的 主猪 / MP:自己存活的情况下消灭所有的反猪. 忠猪 / ZP:不惜一切保护主猪,胜利条件与主猪相同. 反猪 / AP:杀死主猪. 游戏过程 游戏开始时,每个玩家手里都会有\(4\)张牌,且体力上限和初始体力都是\(4\). 开始游戏时,从主猪开始,按照逆时针方向…
题面 (这个做题面的大佬太赞啦) 无聊啊~~~然后就写大模拟,然后就从早上写到下午,生活得到了极大的充实 注意事项: 牌库为空之后再抽牌,会重复抽最后一张被抽走牌 无论在任何过程中,游戏结束(主公死或反贼全死),都中断游戏,直接进入输出阶段 所有人一开始都知道主公的身份 每个人都会无条件帮队友无懈掉决斗万箭南蛮 每个人都会无条件无懈掉对手的无懈 每个人都不会无懈掉队友的无懈 玩家自己的出牌阶段,当玩家用完某一张牌之后,他会从头检索自己之前检索过的牌,看看他们是不是现在可以用了. 反贼当然只会决斗…
题目大意 只能放链接了. 题目中有一点没说:并不是保证牌够用,而是在牌不够用时反复抽最后一张牌. 题解 发现玩家的数量比较少,所以可以不太在意时间够不够用. 考虑三件事:1.基本操作,如摸牌.出牌.玩家死亡.牌的效果:2.游戏流程:3.出牌对象. 摸牌.出牌: 发现对于"某玩家的牌"的操作是从左往右扫第一张可用的,然后删掉(出牌),或者往最右放两张(摸牌),这两个操作用链表很好维护.建议把"判断从玩家\(x\)手牌里有没有值为\(k\)的,如果能,就把最左的\(k\)删去&q…
这道题在模拟界地位不亚于Luogu P4604 [WC2017]挑战在卡常界的地位了吧. 早上到机房开始写,中间因为有模拟赛一直到1点过才正式开始码. 一边膜拜CXR dalao一边写到3点左右,然后调啊调 最后发现杀死反猪抽的牌并没有被杀死它的人抽走(大雾),4点左右终于是写完了 看完题目(看都要10min)感觉这肯定不是什么建图跑XX算法或者套一个数据结构的题 然而数据范围也很默契,猪和牌的数量都不多,所以我们祭出被我们遗弃的暴力算法--模拟. 题目意思都不多说了,以下讲一下大致的思路: 每…
题目太长,我只发链接吧 wikioi(排版看起来舒服一点):http://www.wikioi.com/problem/1834/ bzoj:http://www.lydsy.com:808/JudgeOnline/problem.php?id=1972 首先是题目的样例错了,第三个人有6个J 还有,数据有问题,第1,2个点牌不够用,抽完了就一直抽最后一张牌 调了一天多,我的模拟能力真TM差啊 犯了几个傻逼错误 1.让死人(反贼)继续出牌,用南蛮入侵杀死队友,导致主公获胜 2.主公杀死忠臣没有弃…
前言:嗅到了一丝头秃的味道…… ------------------ 题目链接 题目实在太长,变量也很多.建议至少读个三五遍再做题.不要忽略任何细节,不要想当然.(因为真正玩三国杀肯定不像猪一样出牌啊…… 总结一些有用的信息: 1.有主猪,忠猪,反猪三种身份.忠猪和反猪可以有多个. 2.游戏规则:反猪要杀死主猪,主猪和忠猪要杀死所有反猪. 3.初始阶段每个人都有四张牌,且初始体力值都是四. 4.每次摸牌都能摸两张牌,且放到自己手牌的最右边. 5.出牌时每次都使用最靠左的能使用的牌. 6.如果没有…
T2 猪国 题⽬描述 猪国是⼀个由 \(n\) 个城市组成的国家. 国王意识到了"要致富,先修路"这句话的重要性,它决定⼤规模修路.不巧的是,猪国的 猪们不太会⼯程,于是只能请隔壁鸡国的鸡建狂魔来帮忙修路.鸡建狂魔看不起猪,于是随 便建设了 \(m\) 条单向的路.尽管如此,每条路还是产⽣了或多或少的价值. 路修好了,经济却上不来.国王经过调研,发现了道路的巨⼤缺陷.具体来说,猪⺠们⽅向 感不好,⼀旦存在若⼲条路能组成⼀个环,那么可怜的猪⺠就有可能在环⾥⾯绕来绕去,这 样甚⾄会产⽣反效…
题目描述 幻方是一种很神奇的N*N矩阵:它由数字1,2,3,……,N*N构成,且每行.每列及两条对角线上的数字之和都相同. 当N为奇数时,我们可以通过以下方法构建一个幻方: 首先将1写在第一行的中间. 之后,按如下方式从小到大依次填写每个数K(K=2,3,…,N*N): 1.若(K−1)在第一行但不在最后一列,则将K填在最后一行,(K−1)所在列的右一列: 2.若(K−1)在最后一列但不在第一行,则将K填在第一列,(K−1)所在行的上一行: 3.若(K−1)在第一行最后一列,则将K填在(K−1)…
题目链接 题意:给定一个很大的数,把他们分为数个回文数的和,分的个数不超过50个,输出个数并输出每个数,special judge. 题解:现场赛的时候很快想出来了思路,把这个数从中间分为两部分,当位数为偶数的时候3456就分为34和56,34-1=33,回文数3333,3456-3333=123然后继续算:当位数为奇数的时候34567就分为34和67,5-1=4,回文数34443,34567-34443=124然后继续算.但是一年都没有写过高精度减法的题了,这个大模拟写了很久最后判断奇偶性都判…
Read Phone Number Time Limit:1000MS     Memory Limit:64000KB     64bit IO Format:%lld & %llu Submit Status Practice ACdream 1188 Description Do you know how to read the phone numbers in English? Now let me tell you. For example, In China, the phone n…
[题目传送门] 1383 : The Book List 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 The history of Peking University Library is as long as the history of Peking University. It was build in 1898. At the end of year 2015, it had about 11,000 thousand volumes of books,…
原题链接:P1953 易语言 (我最近怎么总在做大模拟大搜索题) 分别处理两种情况. 如果只有一个1或0 直接设一个cnt为这个值,每次输入一个新名字之后把数字替换成cnt,最后cnt++即可. 注意数字可能不止一位,输出一次cnt之后可以整一个bool变量阻止以后的输出. 如果是要改名 把名称和后缀分别存起来,扫一遍名称找出初始数字,赋给cnt. 同样,初始数字可能不止一位,要每次乘10加n. 然后不用管输入的是啥,每有一个输入输出一遍初始名称,数字部分替换成cnt即可.然后输出第二个名称时检…
再写一道大模拟题. 由于是限时写的,相当于考场代码,乱的一批. 题目链接:P3952 时间复杂度 先记几个教训: 字符串形式的数字比较大小老老实实写函数,字典序都搞错几次了 栈空的时候不但pop()会RE,top()访问栈顶也会RE 数字以字符形式读入要考虑位数超过一位 思路: 1.我用的是在线做法. 2.使用结构体存储一个循环体,包括变量名.起始与结束.是否与n有关.是否能够进入(这一点麻烦了,在栈里推入是否与n有关以及是否能够进入就行了) 3.使用一个变量存储当前进入的层数(只记含n的),当…
题目描述 网上冲浪时,$Slavko$被冲到了水箱里,水箱由上而下竖直平面.示意图如下: 数字$i$所在的矩形代表一个编号为$i$的水箱.1号水箱为水箱中枢,有水管连出.除了$1$号水箱外,其他水箱上方会接进来恰好一条水管,也可能有水管连出.连出的水管会从水箱侧面连出去,同一个水箱连出去的水管会在不同的行与侧面连接.每一条水管直接连接两个水箱,这意味着不会把水管分叉也不会出现水管交叉的情况.这样,从一个水箱流入另外一个水箱时,水管的走向始终保持行号增加或保持不变.水会源源不断地涌进$1$号水箱直…
题目描述 如果玩过俄罗斯方块,应该见过如下图形: 我们称它为一个 \(T\) 形四格拼板 .其中心被标记为\(×\). 小苗画了一个 \(m\) 行 \(n\) 列的长方形网格.行从 \(0\) 至 \(m-1\) 编号,列从 \(0\) 至 \(n-1\) 编号. 她将网格中的一些格子标记为 特殊格子 . 然后,她想要她的朋友帮助她将 \(T\) 形四格拼板按找如下规则摆放: \(1\). 特殊格子的数量与 \(T\) 形四格拼板的数量相同,每个 \(T\) 形四格拼板的中心在网格上的位置必须…
Codeforces 题面传送门 & 洛谷题面传送门 大模拟(?)+阿巴细节题,模拟赛时刚了 3h 最后因为某个细节写挂 100->40/ll/ll(下次一定不能再挂分了啊 awa) 首先先考虑怎么判 \(-1\),显然如果区间 \([l,r]\) 中间的括号构不成合法的括号序列,答案显然是 \(-1\),其次如果 \(s_l\) 是加号或乘号那算式也不合法,\(s_r\) 也同理,这可以通过前缀和+ST 表在 \(\mathcal O(n\log n)-\mathcal O(1)\) 时间…
题目自己去找吧 记得数据范围是<=10 注意事项: 1.牌库空的时候,要不断的抽第一张牌 2.反贼的决斗永远是向主公发的 3.每次判定无懈的时候,都是从使用锦囊的那个牌开始,记得敌意和殷勤的判断 4.只能向有身份的人无懈可击 5.有装备就装 #include<iostre am> #include<cstdio> #include<algorithm> #include<cstring> #include<cmath> #include&l…
题目背景 Soha的出题效率着实让人大吃一惊.OI,数学,化学的题目都出好了,物理的题还没有一道.于是,Huntfire,absi2011,redbag对soha进行轮番炸,准备炸到soha出来,不料,人群中冲出了个kkksc03…… 题目描述 yyy loves OI(Huntfire),yyy loves Maths(redbag),yyy loves Chemistry(absi2011)对yyy loves Physics(soha)进行轮番炸,轰炸按照顺序进行,顺序为Huntfire,…
http://acm.hdu.edu.cn/showproblem.php?pid=5676 这题的正解因该是dfs的,但是有18个位,然后我一算,全排列的话,有18!个啊,那不是很大?但是有很多是相同的,因为4477和第一个和第二个数字调转的结果是一样的. 先说说我模拟的方法. 真的很麻烦,不想看的,给几组数据就跑 70845004755444477787847777445 我是贪心模拟前n位,模拟的时候,如果这一位是3,如果我还有4,那么证明比后面的大了,然后后面的直接按4优先输出即可. 还…
1.题意:给定N个数字,和一个值K,要求输出一组数据中第K大的数字,其中30%的测试点满足:n <= 100;60%的测试点满足:n <= 1000;100%的测试点满足:n <= 100000;1 <= k <= n, 每个同学的分数在[0,32767]之间; 2.分析:最朴素的想法是对数据排序,然后直接得出结果,不过一般的sort()函数复杂度为O(nlogn),不是很快.这里可以注意到,输入数据的范围并不大,在1e4这个数量级,这样我们开一个4e4的数组,读入数据时,用…
题目描述 Description There is a strange storehouse in PKU. In this storehouse there are n slots for boxes, forming a line. In each slot you can pile up any amount of boxes. The limitation is that you can only pile a smaller one above a bigger one, in ord…