T1 十字斩题目描述zzy 是某大学新生在迎新晚会上老师向大家介绍了十字斩活动。活动场地可以视为一个具有坐标轴的无限平面直角坐标系。坐标系中有许多气球气球的坐标可以用 (x,y)(x,y) 刻画 (−108≤x,y≤108)(−108≤x,y≤108)而学生们的目标是用十字斩来破坏最多的气球。十字斩可以形象的刻画为相互垂直的两条直线并且每条直线与 xx 轴 yy 轴的夹角均为 45∘45∘。使用十字斩后两条直线上的气球均被破坏。zzy 想要赢得这场活动的胜利走向大学人生巅峰。于是他选了若干个位置想问你如果他站在这些位置释放十字斩他能破坏多少气球。输入格式第一行两个正整数 nnmm 代表气球数量和询问数量。接下来 nn 行每行两个整数代表气球坐标保证坐标两两不同。接下来 mm 行每行两个整数代表询问坐标。输出格式mm 行每行一个整数代表可以破坏的气球数量样例输入 #14 2 0 0 2 2 0 2 2 0 0 1 1 1样例输出 #10 4数据范围与约定对于所有数据有−10^8≤x,y≤10^80n,m≤10^5测试点编号数据限制1∼30x,y,m≤1004∼50x,y,m≤10006∼80x,y,m≤10^59∼10−10^8≤x,y≤10^8,0n,m≤10^5思路用三个map记录位置。代码#includebits/stdc.h #define ll long long #define db double #define st string #define ch char #define bo bool #define s2 105 #define s3 1005 #define s4 10005 #define s5 100005 #define s6 1000005 #define s7 100000005 using namespace std; int n,m,x,y; mapint,int mp1,mp2; mappairint,int,int mp3; signed main(){ cin.tie(0)-sync_with_stdio(0); cinnm; for(int i1;in;i){ cinxy; mp1[xy]1; mp2[x-y]1; mp3[{x,y}]1; } for(int i1;im;i){ cinxy; int ansmp1[xy]mp2[x-y]; if(mp3[{x,y}]1) ans--; coutans\n; } return 0; }T2 大富翁题目描述新生们为了促进感情准备去玩桌游他们选择了大富翁游戏。大富翁的胜利目标是为了收取更多的租金获得更多的钱。地图上有 nn 栋房屋一开始并不会产出租金。每栋房屋都可以被“购买”一次也可以被“装修”一次需要在购买之后。如果一栋房屋被“购买”则这栋房屋每天可以产生一个金币的租金如果一栋房屋被“购买”且“装修”则这栋房屋每天可以产生两个金币的租金。购买房屋和装修房屋都与要一定时间第 ii 房屋被购买需要 ai,0ai,0​ 时间被装修需要 ai,1ai,1​ 时间。一个人在同一时间只能进行一个操作也就是说不可以同时对两个房屋进行操作也不可以同时购买或装修一个房屋。不同房屋之间没有时间顺序的限制一个人可以从任意一个房屋开始购买且可以任意切换房屋进行购买或装修。zzy 想知道他到第 mm 时刻结束时最多能获得多少金币。由于新生想更好的促进感情所以他们会玩很长时间保证 m≥1010m≥1010输入格式第一行两个整数 n,mn,m。接下来 nn 行每行两个整数 ai,0,ai,1ai,0​,ai,1​。输出格式一行一个整数代表 zzy 能获得多少钱。样例输入 #12 10000000000 2 1 1 2样例输出 #139999999986数据范围与约定对于所有数据有10^10≤m≤10^11n≤6×10^50≤ai,j≤5×10^3测试点编号数据限制特殊性质1n,ai,j≤52n,ai,j≤153∼4ai,0≤ai,1A5∼10无特殊性质 A保证 ai0≤ai1​思路贪心。代码#includebits/stdc.h #define int long long using namespace std; int n, m, a, b; vectorpairint, int v; int cmp(pairint, int a, pairint, int b) { int ta a.first ((a.second -1) ? a.first : a.second); int tb b.first ((b.second -1) ? b.first : b.second); return ta tb; } signed main() { cin.tie(0)-sync_with_stdio(0); cin n m; for (int i 1; i n; i) { cin a b; if (a b) { v.push_back({b, -1}); v.push_back({a, -1}); } else v.push_back({a, b}); } sort(v.begin(), v.end(), cmp); int ans m*n * 2, sum 0; for (int i 0; i v.size(); i) { if (v[i].second -1) { sum v[i].first; ans - sum; } else { sum v[i].first; ans - sum; sum v[i].second; ans - sum; } } cout ans; return 0; }T3 联谊舞会题目描述一年一度的联谊舞会开始了每位学生都能交到自己心仪的朋友。为了吸引同学参加联谊舞会的主办方在今年想出了交友的新办法主办方在舞厅中间画出了一条分界线分界线的上方和下方都有一些从左往右的“站点”每位同学都需要从一个分界线上方的“站点”跑到一个分界线下方的“站点”如果两个同学的跑步路线相交那么他们便交友成功。需要注意的是每位同学都和一个出发站点和一个结束站点唯一对应。zzy 是社交领域专家他很好奇这场舞会可以产生的最大“朋友圈”是多大我们定义若干同学组成“朋友圈”当且仅当这些同学中任意两人均交友成功。输入格式第一行一个正整数 n代表同学个数。接下来一行 n个数第 i 个数 为 Ai代表第 ii个出发站点所对应的同学。接下来一行 n 个数第 ii个数 为 Bi​代表第 i 个结束站点所对应的同学。输出格式输出一个整数代表最大朋友圈的大小样例输入 #14 3 4 1 2 4 3 2 1样例输出 #12样例输入 #23 1 2 3 3 2 1样例输出 #23数据范围与约定对于所有数据有1n≤10^5测试点编号数据限制特殊性质1∼2n≤33n≤104∼6n≤1000A7∼910n≤10^5特殊性质 A保证 Aii代码无代码我WA了…………………………。T4 唬牌游戏题目描述近些天一款名为唬牌的游戏风靡全校游戏规则如下所需游戏道具是若干张扑克牌此时每张牌都具有一个花色。一共两名玩家参赛游戏共两局。在第一局游戏的每个回合中玩家 A 将若干张相同花色的扑克牌扣置此时玩家 B不知道玩家 A 扣置的是什么花色并声称一种花色玩家 B 则需要猜测玩家A所扣置的牌是否与其声称花色相同猜对则 B 得一分。无论B是否猜对A 都要告诉 B 自己扣置的牌是否与声称花色相同并且将扣置的牌放入弃牌堆B看不见这些牌的花色是什么只知道这些牌花色是否与声称花色相同。第二局游戏玩家 A 与玩家 B 的角色互换。最终谁的得分更高谁获得比赛胜利。现在 zzy 和 zsh 正在进行唬牌对决游戏已经进行到了白热化的阶段而 zzy 需要你的帮助。你已经知道前 nn 回合的所有信息请你帮助 zzy 做出这一回合的判断是 zsh 的声称一定正确还是一定错误还是你也不清楚表示无能为力zzy 预想了 m 种 zsh 在第 n1 回合可能会进行的操作你需要对其一一解答。为了方便你的输入我们使用字符 D 代表方片字符 C 代表草花字符 H 代表红桃字符 S 代表黑桃。输入格式第一行四个整数 a,b,c,d 代表扑克牌中方片、草花、红桃、黑桃牌的张数。第二行输入一个整数 n。接下来 n 行每行输入 一个字符表示声称的花色一个数字表示扣置牌数一个字符 T 或 F 表示扣置牌与 zsh 声称牌花色是否一致。接下来一行输入一个整数 m。接下来 m 行每行输入一个字符和一个数字表示 zzy 预想本回合 zsh 可能进行的声称。字符表示花色数字表示扣置牌数输出格式输出共 m 行 每行一个字符串表示如果 zsh 这么声称你的回答是什么。一定正确输出 T, 一定错误输出 F, 你也不清楚输出 NG 特别的如果 zsh 根本不可能进行这样的声称输出 ERROR样例输入 #11 1 1 1 2 D 1 T D 1 F 3 D 1 H 1 H 2样例输出 #1F NG ERROR样例输入 #210 10 10 10 10 D 5 T C 5 T H 5 T S 5 T C 3 T S 3 T H 3 T D 1 F D 1 F S 1 F 2 D 5 D 6样例输出 #2T ERROR样例解释 #2D 花色最多剩五张其余花色最多剩两张 因为每次扣置牌花色必须一样所以如果 zsh 声称 D 5那么一定是 D 花色 zsh不存在有一个花色剩余大于五张所以他下回合不可能声称 D 6数据范围与约定对于所有数据有0n,m,a,b,c,d≤80测试点编号数据限制特殊性质1∼2n,m,a,b,c,d≤103∼4n,m,a,b,c,d≤305∼6无A7∼10特殊性质 A: 前 n 回合 zsh 所扣置的牌和其声称的牌花色均相同思路大DP。代码#includebits/stdc.h using namespace std; const int N 81; int A,B,C,D,n,m; bool f[2][N][N][N][N]; signed main(){ cin A B C D; cin n; f[0][0][0][0][0] 1; int tot 0; for (int i 1; i n; i){ char o,o2; int x; cin o x o2; tot x; for (int d 0; d A; d){ for (int c 0; c B; c){ for (int h 0; h C; h){ int s tot-d-c-h; f[i%2][d][c][h][s] 0; } } } for (int d 0; d A; d){ for (int c 0; c B; c){ for (int h 0; h C; h){ int s tot-d-c-h; if (s 0 || s D) continue; if ((o D o2 T) || (o ! D o2 F)) if (d x) f[i%2][d][c][h][s] | f[(i1)^1][d-x][c][h][s]; if ((o C o2 T) || (o ! C o2 F)) if (c x) f[i%2][d][c][h][s] | f[(i1)^1][d][c-x][h][s]; if ((o H o2 T) || (o ! H o2 F)) if (h x) f[i%2][d][c][h][s] | f[(i1)^1][d][c][h-x][s]; if ((o S o2 T) || (o ! S o2 F)) if (s x) f[i%2][d][c][h][s] | f[(i1)^1][d][c][h][s-x]; } } } } cin m; for (int i 1; i m; i){ char o; int x; cin o x; int if0 1, if1 1; int noo 1; for (int d 0; d A; d){ for (int c 0; c B; c){ for (int h 0; h C; h){ int s tot-d-c-h; if (d A-x c B-x h C-x s D-x) continue; if (f[n%2][d][c][h][s]){ noo 0; if (o D){ if (d A-x) if0 0; if (d A-x c B-x h C-x s D-x); else if1 0; } if (o C){ if (c B-x) if0 0; if (d A-x c B-x h C-x s D-x); else if1 0; } if (o H){ if (h C-x) if0 0; if (d A-x c B-x h C-x s D-x); else if1 0; } if (o S){ if (s D-x) if0 0; if (d A-x c B-x h C-x s D-x); else if1 0; } } } } } if (noo 1) cout ERROR endl; else if (if0) cout F endl; else if (if1) cout T endl; else cout NG endl; } return 0; }这也太好玩了哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈………………………………………………下次再也不玩了。