题目大意:猪国杀,又一道大模拟题

题解:模拟,对于一个没有玩过三国杀的人来说,一堆细节不知道,写的十分吃力

卡点:无数,不想说什么了,这告诉我要多玩游戏

C++ Code:

#include <algorithm>
#include <cstdlib>
#include <cstdio>
#include <iostream>
#include <map>
#include <queue>
#include <vector>
//#define DEBUG#define Main_Pig 1
using std::string;namespace Debug {std::map<string, string> Name;inline void init() {Name[""] = "无"; Name["P"] = "桃"; Name["K"] = "杀"; Name["D"] = "闪"; Name["F"] = "决斗"; Name["N"] = "南猪入侵"; Name["W"] = "万箭齐发"; Name["J"] = "无懈可击"; Name["Z"] = "猪哥连弩"; Name["MP"] = "主猪"; Name["ZP"] = "忠猪"; Name["FP"] = "反猪"; }
}const string NONE = "";
//基本牌
const string PEACH = "P",KILL = "K",DODGE = "D";//锦囊牌
const string JD = "F",NZRQ = "N",WJQF = "W",WXKJ = "J";//装备牌
const string ZGLN = "Z";//猪
const string MP = "MP",ZP = "ZP",FP = "FP";//主猪,跳忠,不知,类反猪,跳反
const int TM = 2,TZ = 1,UK = 0,Similar_FZ = -1,TF = -2; int Pigs_Num;struct Card {std::string type;inline Card(string __type = NONE) {type = __type;}friend std::istream & operator >> (std::istream &Fin, Card &card) {string __card;Fin >> __card;card = Card(__card);return Fin;}friend std::ostream & operator << (std::ostream &Fout, Card &card) {string __type = card.type;#ifdef DEBUGFout << Debug::Name[__type];#elseFout << __type;#endifreturn Fout;}inline bool is_kill() {return type == KILL;}inline bool is_peach() {return type == PEACH;}inline bool is_dodge() {return type == DODGE;}inline bool is_jd() {return type == JD;}inline bool is_nzrq() {return type == NZRQ;}inline bool is_wjqf() {return type == WJQF;}inline bool is_wxkj() {return type == WXKJ;}inline bool is_zgln() {return type == ZGLN;}};struct Card_Pool {std::queue<Card> cards;Card get_card(bool Empty = false) { //抽牌 if (cards.empty()) return NONE;Card __card = cards.front();if (cards.size() > 1 || Empty) cards.pop();return __card;}bool empty() {return cards.empty();}void insert(string __card) {cards.push(Card(__card));} //牌堆加牌 void insert(Card __card) {cards.push(__card);} //牌堆加牌 friend std::ostream & operator << (std::ostream &Fout, Card_Pool &__Pool) { //从上到下输出牌堆的牌 std::queue<Card> tmp;while (!__Pool.empty()) {Card __card = __Pool.get_card(true);tmp.push(__card);#ifdef DEBUGFout << Debug::Name[__card.type];#elseFout << __card.type;#endif}while (!tmp.empty()) {__Pool.insert(tmp.front());tmp.pop();}return Fout;}} Pool;struct Pig {string type;int Jump, Max_HP, HP, Pos;bool AK_47, dead;std::vector<Card> cards;inline std::vector<Card>::iterator begin() {return cards.begin();}inline std::vector<Card>::iterator end() {return cards.end();}inline Pig(string __type = NONE, int __pos = 0) {Pos = __pos;type = __type;if (__type == MP) Jump = TM;else Jump = UK;Max_HP = HP = 4;AK_47 = dead = false;cards.clear();}inline void clear() {cards.clear();AK_47 = false;}void insert_zgln(std::vector<Card>::iterator it) {cards.erase(it);AK_47 = true;}void insert(string __card) { //把一张牌加入手牌cards.push_back(Card(__card));}void insert(Card __card) { //把一张牌加入手牌 cards.push_back(__card);}inline bool max_hp() {return Max_HP <= HP;} //是否满血 friend std::ostream & operator << (std::ostream &Fout, Pig pig) {if (pig.dead) {Fout << "DEAD";return Fout;}for (std::vector<Card>::iterator it = pig.begin(); it != pig.end(); it++) {Fout << *it << " ";}return Fout;}std::vector<Card>::iterator find_peach() { //找桃,并返回位置 for (std::vector<Card>::iterator it = cards.begin(); it != cards.end(); it++) {if (it -> is_peach()) return it;}return cards.end();}bool use_peach() { //使用桃 if (max_hp()) return false;std::vector<Card>::iterator it = find_peach();if (it == cards.end()) return false;HP++;cards.erase(it);#ifdef DEBUGstd::cout << std::endl;std::cout << type << ":" << Pos << "用了一个桃,现在血量为" << HP << std::endl;std::cout << "现在拥有的牌 :" << *this << std::endl;#endif return true;}std::vector<Card>::iterator find_kill() { //找杀,并返回位置 for (std::vector<Card>::iterator it = cards.begin(); it != cards.end(); it++) {if (it -> is_kill()) return it;}return cards.end();}bool use_kill() { //使用闪 std::vector<Card>::iterator it = find_kill();if (it == cards.end()) return false;cards.erase(it);#ifdef DEBUGstd::cout << std::endl;std::cout << type << ":" << Pos << "用了一个杀" << std::endl;std::cout << "现在拥有的牌 :" << *this << std::endl;#endif return true;}std::vector<Card>::iterator find_dodge() { //找闪,并返回位置 for (std::vector<Card>::iterator it = cards.begin(); it != cards.end(); it++) {if (it -> is_dodge()) return it;}return cards.end();}bool use_dodge() { //使用闪 std::vector<Card>::iterator it = find_dodge();if (it == cards.end()) return false;cards.erase(it);#ifdef DEBUGstd::cout << std::endl;std::cout << type << ":" << Pos << "用了一个闪" << std::endl;std::cout << "现在拥有的牌 :" << *this << std::endl;#endif return true;}std::vector<Card>::iterator find_wxkj() { //找无懈可击,并返回位置 for (std::vector<Card>::iterator it = cards.begin(); it != cards.end(); it++) {if (it -> is_wxkj()) return it;}return cards.end();}bool use_wxkj() { //使用无懈可击std::vector<Card>::iterator it = find_wxkj();if (it == cards.end()) return false;cards.erase(it);#ifdef DEBUGstd::cout << std::endl;std::cout << type << ":" << Pos << "用了无懈可击" << std::endl;std::cout << "现在拥有的牌 :" << *this << std::endl;#endif return true;}bool hurt(int num = 1) { //收到伤害 HP -= num;#ifdef DEBUGstd::cout << std::endl;std::cout << type << ":" << Pos << "收到" << num << "点伤害,现在血量为" << HP << std::endl;#endif if (HP <= 0) {#ifdef DEBUGstd::cout << type << ":" << Pos << "进入濒死状态" << std::endl;#endif if (!use_peach()) {this -> clear();#ifdef DEBUGstd::cout << type << ":" << Pos << "死亡" << std::endl;#endif dead = true;return true;} }return false;} } Pigs[20];int nxt_pig(int now) { //找下一头猪 int nxt = now;while (true) {nxt = nxt % Pigs_Num + 1;if (!Pigs[nxt].dead) return nxt;}return 0;
}int nxt_pig(Pig now) { //找下一头猪 return nxt_pig(now.Pos);
}inline int game_over() { //判断游戏是否结束 if (Pigs[1].dead) return -1;int FP_Num = 0;for (int i = 1; i <= Pigs_Num; i++) {#ifdef DEBUGstd::cout << std::endl;std::cout << "第" << i << "只猪是" << Pigs[i].type << ",是否死亡:" << Pigs[i].dead << std::endl; #endifif (!Pigs[i].dead) FP_Num += (Pigs[i].type == FP);}#ifdef DEBUGstd::cout << "现在反猪有" << FP_Num << "只" << std::endl; #endifreturn !FP_Num;
}void end_game() { //输出 int situation = game_over();if (situation == 1) puts("MP");else puts("FP");for (int i = 1; i <= Pigs_Num; i++) std::cout << Pigs[i] << std::endl;exit(0);
}namespace Action {void result(int From, int To) { //奖励与惩罚(主猪杀忠猪,杀反猪) #ifdef DEBUGstd::cout << std::endl;std::cout << Pigs[From].type << ":" << Pigs[From].Pos << "杀死了" << Pigs[To].type << ":" << Pigs[To].Pos << std::endl;#endifif (game_over()) end_game();if (Pigs[To].type == FP) {for (int i = 0; i < 3; i++) Pigs[From].insert(Pool.get_card());#ifdef DEBUGstd::cout << std::endl;std::cout << Pigs[From].type << ":" << Pigs[From].Pos << "杀死反猪,获得三张牌" << std::endl;std::cout << "现在的牌:" << Pigs[From] << std::endl;#endif}if (Pigs[To].type == ZP) {if (Pigs[From].type == MP) {Pigs[From].clear();#ifdef DEBUGstd::cout << std::endl;std::cout << "主猪杀死忠猪丢弃所有牌" << std::endl;#endif}}}void enemies(int From, int To, bool aoe = false) { //from对to表敌意,是否是范围伤害 #ifdef DEBUGstd::cout << std::endl;std::cout << Pigs[From].type << ":" << Pigs[From].Pos << "对" << Pigs[To].type << ":" << Pigs[To].Pos << "表敌意" << std::endl;if (aoe) std::cout << "是范围伤害" << std::endl; #endifif (aoe) {if (Pigs[From].Jump == UK) {if (Pigs[To].Jump == TM) {Pigs[From].Jump = Similar_FZ;#ifdef DEBUGstd::cout << Pigs[From].type << ":" << Pigs[From].Pos << "类反猪" << std::endl;#endifreturn ;}}return ;} if (Pigs[From].Jump == UK || Pigs[From].Jump == Similar_FZ) {if (Pigs[To].Jump == TF) {Pigs[From].Jump = TZ;#ifdef DEBUGstd::cout << Pigs[From].type << ":" << Pigs[From].Pos << "跳忠" << std::endl;#endifreturn ;}if (Pigs[To].Jump > UK) {Pigs[From].Jump = TF;#ifdef DEBUGstd::cout << Pigs[From].type << ":" << Pigs[From].Pos << "跳反" << std::endl;#endifreturn ;}}} void friends(int From, int To) { //from对to献殷勤 #ifdef DEBUGstd::cout << std::endl;std::cout << Pigs[From].type << ":" << Pigs[From].Pos << "对" << Pigs[To].type << ":" << Pigs[To].Pos << "献殷勤" << std::endl;#endifif (Pigs[From].Jump == UK || Pigs[From].Jump == Similar_FZ) {if (Pigs[To].Jump == TF) {Pigs[From].Jump = TF;#ifdef DEBUGstd::cout << Pigs[From].type << ":" << Pigs[From].Pos << "跳反" << std::endl;#endifreturn ;}if (Pigs[To].Jump > UK) {Pigs[From].Jump = TZ;#ifdef DEBUGstd::cout << Pigs[From].type << ":" << Pigs[From].Pos << "跳忠" << std::endl;#endifreturn ;}}} bool hurt(int From, int To, bool aoe = false, bool jd = false) { //from对to造成伤害,是否是范围伤害,是否是决斗 #ifdef DEBUGstd::cout << std::endl;std::cout << Pigs[From].type << ":" << Pigs[From].Pos << "对" << Pigs[To].type << ":" << Pigs[To].Pos << "造成伤害" << std::endl;#endifif (jd || aoe || !Pigs[To].use_dodge()) {if (Pigs[To].hurt()) result(From, To);}if (!jd) enemies(From, To, aoe);return false;}void kill(int From, int To, std::vector<Card>::iterator it) { //杀 Pigs[From].cards.erase(it);#ifdef DEBUGstd::cout << std::endl;std::cout << Pigs[From].type << ":" << Pigs[From].Pos << "对" << Pigs[To].type << ":" << Pigs[To].Pos << "使用杀" << std::endl;#endifhurt(From, To); }bool query_wxkj(int start, int Now, bool friends) { //询问是否使用无懈可击,开始的猪,目标猪,是否献殷勤 #ifdef DEBUGstd::cout << std::endl;std::cout << "询问无懈可击,对象:" << Pigs[Now].type << ":" << Pigs[Now].Pos << std::endl;#endifif (friends) {int i = start;do {if (Pigs[i].type == ZP) {if (Pigs[Now].Jump > UK) {if (Pigs[i].use_wxkj()) {#ifdef DEBUGstd::cout << std::endl;std::cout << Pigs[i].type << ":" << Pigs[i].Pos << "对" << Pigs[Now].type << ":" << Pigs[Now].Pos << "使用无懈可击" << std::endl;#endifAction::friends(i, Now);return !query_wxkj(i, i, false);}}}if (Pigs[i].type == MP) {if (Pigs[Now].Jump > UK) {if (Pigs[i].use_wxkj()) {#ifdef DEBUGstd::cout << std::endl;std::cout << Pigs[i].type << ":" << Pigs[i].Pos << "对" << Pigs[Now].type << ":" << Pigs[Now].Pos << "使用无懈可击" << std::endl;#endifAction::friends(i, Now);return !query_wxkj(i, i, false);}}}if (Pigs[i].type == FP) {if (Pigs[Now].Jump == TF) {if (Pigs[i].use_wxkj()) {#ifdef DEBUGstd::cout << std::endl;std::cout << Pigs[i].type << ":" << Pigs[i].Pos << "对" << Pigs[Now].type << ":" << Pigs[Now].Pos << "使用无懈可击" << std::endl;#endifAction::friends(i, Now);return !query_wxkj(i, i, false);}}}i = nxt_pig(i);} while (i != start);return false;} else {int i = start;do {if (Pigs[i].type == ZP) {if (Pigs[Now].Jump == TF) {if (Pigs[i].use_wxkj()) {#ifdef DEBUGstd::cout << std::endl;std::cout << Pigs[i].type << ":" << Pigs[i].Pos << "对" << Pigs[Now].type << ":" << Pigs[Now].Pos << "使用无懈可击" << std::endl;#endifenemies(i, Now);return !query_wxkj(i, i, false);}}}if (Pigs[i].type == MP) {if (Pigs[Now].Jump < UK) {if (Pigs[i].use_wxkj()) {#ifdef DEBUGstd::cout << std::endl;std::cout << Pigs[i].type << ":" << Pigs[i].Pos << "对" << Pigs[Now].type << ":" << Pigs[Now].Pos << "使用无懈可击" << std::endl;#endifenemies(i, Now);return !query_wxkj(i, i, false);}}}if (Pigs[i].type == FP) {if (Pigs[Now].Jump > UK) {if (Pigs[i].use_wxkj()) {#ifdef DEBUGstd::cout << std::endl;std::cout << Pigs[i].type << ":" << Pigs[i].Pos << "对" << Pigs[Now].type << ":" << Pigs[Now].Pos << "使用无懈可击" << std::endl;#endifenemies(i, Now);return !query_wxkj(i, i, false);}}}i = nxt_pig(i);} while (i != start);return false;}}void jd(int From, int To, std::vector<Card>::iterator it) { //决斗 Pigs[From].cards.erase(it);#ifdef DEBUGstd::cout << std::endl;std::cout << Pigs[From].type << ":" << Pigs[From].Pos << "对" << Pigs[To].type << ":" << Pigs[To].Pos << "使用决斗" << std::endl;#endifenemies(From, To, false);if (query_wxkj(From, To, true)) return ;int Now = From, Past = To;while (true) {std::swap(Now, Past);if (Pigs[Now].type == ZP && Pigs[Past].type == MP) break;if (!Pigs[Now].use_kill()) break;}#ifdef DEBUGstd::cout << std::endl;std::cout << Pigs[Now].type << ":" << Pigs[Now].Pos << "没有出杀,收到伤害" << std::endl;#endifhurt(Past, Now, false, true);}void nzrq(int From) { //南猪入侵 #ifdef DEBUGstd::cout << std::endl;std::cout << Pigs[From].type << ":" << Pigs[From].Pos << "使用南猪入侵" << std::endl;#endiffor (int i = nxt_pig(From); i != From; i = nxt_pig(i)) {if (query_wxkj(From, i, true)) continue; if (!Pigs[i].use_kill()) {#ifdef DEBUGstd::cout << std::endl;std::cout << Pigs[i].type << ":" << Pigs[i].Pos << "没有出杀,收到伤害" << std::endl;#endifhurt(From, i, true);}} } void wjqf(int From) { //万箭齐发 #ifdef DEBUGstd::cout << std::endl;std::cout << Pigs[From].type << ":" << Pigs[From].Pos << "使用万箭齐发" << std::endl;#endiffor (int i = nxt_pig(From); i != From; i = nxt_pig(i)) {if (query_wxkj(From, i, true)) continue; if (!Pigs[i].use_dodge()) {#ifdef DEBUGstd::cout << std::endl;std::cout << Pigs[i].type << ":" << Pigs[i].Pos << "没有出闪,收到伤害" << std::endl;#endifhurt(From, i, true);}} }
}namespace Turn {bool use_kill(int Now, std::vector<Card>::iterator it) { //尝试使用杀 int Nxt = nxt_pig(Now);#ifdef DEBUGstd::cout << std::endl;std::cout << Pigs[Now].type << ":" << Pigs[Now].Pos << "尝试使用杀" << std::endl; std::cout << "下一只猪:" << Pigs[Nxt].type << ":" << Pigs[Nxt].Pos << std::endl;#endifif (Now == Nxt) return false;if (Pigs[Now].type == MP) {if (Pigs[Nxt].Jump < UK) {Action::kill(Now, Nxt, it);return true;} else return false;}if (Pigs[Now].type == ZP) {if (Pigs[Nxt].Jump == TF) {Action::kill(Now, Nxt, it);return true;} else return false;}if (Pigs[Now].type == FP) {if (Pigs[Nxt].Jump > UK) {Action::kill(Now, Nxt, it);return true;} else return false;}return 0;}bool use_jd(int Now, std::vector<Card>::iterator it) { //尝试使用决斗#ifdef DEBUGstd::cout << std::endl;std::cout << Pigs[Now].type << ":" << Pigs[Now].Pos << "尝试使用决斗" << std::endl; #endifif (Pigs[Now].type == MP) {for (int i = nxt_pig(Now); i != Now; i = nxt_pig(i)) if (Pigs[i].Jump < UK) {Action::jd(Now, i, it);return true;} else return false;}if (Pigs[Now].type == ZP) {for (int i = nxt_pig(Now); i != Now; i = nxt_pig(i)) {if (Pigs[i].Jump == TF) {Action::jd(Now, i, it);return true;}}return false;}if (Pigs[Now].type == FP) {Action::jd(Now, Main_Pig, it);return true;}return 0;}void turn(int Now) { //进行回合 for (int i = 0; i < 2; i++) Pigs[Now].insert(Pool.get_card());#ifdef DEBUGstd::cout << std::endl;std::cout << "现在轮到" << Pigs[Now].type << ":" << Pigs[Now].Pos << " :" << std::endl;std::cout << "现在血量:" << Pigs[Now].HP << std::endl; std::cout << "现在拥有的牌:" << Pigs[Now] << std::endl;#endif bool Can_Use_Kill = true;bool used = true;while (used) {used = false;for (std::vector<Card>::iterator it = Pigs[Now].begin(); it != Pigs[Now].end(); it++) {if (it -> is_zgln()) { //猪哥连弩 Pigs[Now].insert_zgln(it);used = true;break;}if (it -> is_peach()) { //桃 if (Pigs[Now].use_peach()) {used = true;break;}}if (it -> is_kill()) { //杀 if ((Can_Use_Kill || Pigs[Now].AK_47)) {if (use_kill(Now, it)) {Can_Use_Kill = false;used = true;break;}}}if (it -> is_jd()) { //决斗 if (use_jd(Now, it)) {used = true;break;}}if (it -> is_nzrq()) { //南猪入侵 Pigs[Now].cards.erase(it);Action::nzrq(Now);used = true;break;}if (it -> is_wjqf()) { //万箭齐发 Pigs[Now].cards.erase(it);Action::wjqf(Now);used = true;break;}}}}}namespace Game {using std::cin;using std::cout;int Cards_Num;void start() {std::cin >> Pigs_Num >> Cards_Num;for (int i = 1; i <= Pigs_Num; i++) {string __type;cin >> __type;Pigs[i] = Pig(__type, i);for (int j = 0; j < 4; j++) {cin >> __type;Pigs[i].insert(__type);}}for (int i = 1; i <= Cards_Num; i++) {string __type;cin >> __type;Pool.insert(__type);}for (int i = Main_Pig; !game_over(); i = nxt_pig(i)) if (!Pigs[i].dead) Turn::turn(i);end_game();}
}
int main() {#ifdef DEBUGDebug::init();freopen("LG2482.log", "w", stdout); #endifGame::start();return 0;
}

  

转载于:https://www.cnblogs.com/Memory-of-winter/p/9857191.html

[洛谷P2482][SDOI2010]猪国杀相关推荐

  1. 洛谷P2482 [SDOI2010]猪国杀 题解

    本来这题打算5.15省选考完之后晚上做的,然而15号考了一天的试,于是放16号晚上做了. 原题传送门 题目分析 猪国杀是一道桌游三国杀的简化版,这道题在代码涉及的知识点上难度很低,主要难度就在于如何实 ...

  2. 洛谷P2482 [SDOI2010]猪国杀 坑点总结

    题目链接:https://www.luogu.com.cn/problem/P2482 总结了几个坑点- (这种改一改都能当课设交的东西真的有人比赛的时候写得出来吗) 使用锦囊牌时可能存在跳反或跳忠( ...

  3. [luogu P2482] [SDOI2010]猪国杀

    [luogu P2482] [SDOI2010]猪国杀 题目描述 <猪国杀>是一种多猪牌类回合制游戏,一共有三种角色:主猪,忠猪,反猪.每局游戏主猪有且只有一只,忠猪和反猪可以有多只,每只 ...

  4. Luogu P2482 [SDOI2010]猪国杀

    Pig Country Kill 很古怪的翻译,不过它确实叫猪(Pig)国(Country)杀(Kill). 我们来好好整理一下这道题目.题面虽较长,但内容基本清晰,只是有部分很Pig的操作部分,很容 ...

  5. P2482 [SDOI2010]猪国杀 【题解】

    题目简述: 这是一道非常善良的凉心模拟题... <身份>: 主猪(主公):MP 忠猪(忠臣):ZP 反猪(反贼):FP <基本牌>: 杀:K 闪:D 桃:P <锦囊牌&g ...

  6. [SDOI2010] 猪国杀

    NOIp前最后皮一下,祝自己RP++. 从昨天晚上开始写,一直写到现在才A...... 在LXD大佬的帮助下,终于A掉了...... 还发现有两道大模拟,一个是琪露诺的冰雪小屋,一个是杀蚂蚁,有兴趣的 ...

  7. BZOJ1972:[SDOI2010]猪国杀

    我对模拟的理解:https://www.cnblogs.com/AKMer/p/9064018.html 题目传送门:https://www.lydsy.com/JudgeOnline/problem ...

  8. SDOI2010 猪国杀

    题目描述 <猪国杀>是一种多猪牌类回合制游戏,一共有三种角色:主猪,忠猪,反猪.每局游戏主猪有且只有一只,忠猪和反猪可以有多只,每只猪扮演一种角色. 游戏目的: 主猪(MP):自己存活的情 ...

  9. 模拟 [Sdoi2010]猪国杀

    题目的可读版本 有那么几个地方需要注意: 1.使用一个锦囊后,先判无懈可击. 2.如果一个猪出完一个牌后,要从头开始看哪个能出(有可能一次出牌后某只猪跳忠或者跳反了,F,K什么的就可以用了.) 3.游 ...

最新文章

  1. 【并发那些事】可见性问题的万恶之源
  2. mysql优化模糊查询_MySQL的LIKE模糊查询优化
  3. C/C++:Windows编程—调用DLL程序的2种方法
  4. Android 系统(207)---Android各种Drawable讲解和demo实例
  5. 7723java梦游游戏,渠道SDK登录
  6. 结对-贪吃蛇游戏-需求分析
  7. oracle 转成sql server,怎样把Oracle查询转换为SQL Server
  8. 学习webbench需要掌握的基础知识(webbench源代码学习心得)
  9. 自动色彩均衡算法(ACE)原理及实现
  10. Spring Boot教程系列
  11. mysql binlog 回滚_Mysql误操作后利用binlog2sql快速回滚的方法详解
  12. 第三代USRP 产品对比
  13. 【CodeForces】 106C Buns(多重背包)
  14. Mysql中WhereIn和Join的性能比对
  15. 连共享打印机问题汇总
  16. Elliptic Curve Cryptography: a gentle introduction
  17. Android 系统属性读取和设置详解
  18. 树莓派4上手(无显示屏)
  19. 牛客——[SDOI2013]随机数生成器(推公式+BSGS)
  20. 登录密码显示服务器错误是什么意思,密码和账号都没有错,为什么登教育人人通会显示服务器错误,我该怎么呢?...

热门文章

  1. 内容平台竞争激烈,一点资讯如何差异化竞争?
  2. Java学习——常用类(API)
  3. 《Microsoft.NET企业级应用架构设计(第2版)》——第2章 为成功而设计 2.1“大泥球”...
  4. 免费赠送QQ币--每天骗数十万用户 专家谈网络诈骗
  5. “21天好习惯”第一期-10 鲁滨逊漂流记网页-2
  6. 24. 二叉搜索树的最近公共祖先
  7. kettle输入输出速度很慢怎么办
  8. 视频剪辑工具,从指定秒数中随机抽帧,以图片格式保存
  9. php yanzhengm,php登录验证_php用户登录与验证的代码举例
  10. centos6.2 安装webqq