
ZOJ
moyangxian
MoYang
展开
-
ZOJ 3879 Capture the Flag(模拟)
题意:按照题目模拟。题记:需要注意一下最后判断两个队伍分数是否相同时不能用==,不然会有误差导致WA。#include<bits/stdc++.h>using namespace std;const int N=105;const double eps=1e-7;struct Node{ int id; double sum; int ranks;}a[N];bool vis[N][N][N];bool cmp1(Node x,Node y){原创 2020-06-22 12:34:02 · 200 阅读 · 0 评论 -
ZOJ 3880 Demacia of the Ancients(水题)
题意:找出有多少个大于6000的数。题记:略。#include<bits/stdc++.h>using namespace std;int main(){ int T; cin>>T; while(T--){ int n; cin>>n; int x,ans=0; for(int i=0;i<n;i++){ cin>>x;原创 2020-06-22 12:31:56 · 167 阅读 · 0 评论 -
ZOJ 3878 Convert QWERTY to Dvorak(模拟)
题意:模拟两个键盘。题记:一个一个对着打即可。#include<bits/stdc++.h>using namespace std;char a[]={"QqWwEeRrTtYyUuIiOoPp{[}]AaSsDdFfGgHhJjKkLl:;\"'ZzXxCcVvBbNnMm<,>.?/_-+="};char b[]={"\"'<,>.PpYyFfGgCcRrLl?/+=AaOoEeUuIiDdHhTtNnSs_-:;QqJjKkXxBbMmWwVvZz{[原创 2020-06-22 12:26:49 · 231 阅读 · 0 评论 -
ZOJ 3876 May Day Holiday(水题)
题意:求出每一年的五一假期能放多少天。题记:数据从1928年开始,那就从1928年开始算。特判一下闰年要加一天即可。#include<bits/stdc++.h>using namespace std;const int N=1e4+10;int ans[]={6,9,6,5,5,5,5};int a[N];int check(int y){ if(y%400==0||(y%4==0&&y%100!=0)) return 366;原创 2020-06-22 12:25:30 · 169 阅读 · 0 评论 -
ZOJ 3875 Lunch Time(简单排序)
题意:在S,M,D中选出各自的处于中位数的菜,把三个菜的总价值和菜名输出。题记:将每一类菜按价值排序,然后选出中位数即可。include<bits/stdc++.h>using namespace std;const int N=110;struct Node{ string s; int x; bool operator < (const Node &W)const{ return x<W.x; }}a[N];原创 2020-06-22 12:22:03 · 317 阅读 · 0 评论 -
ZOJ 3872 Beauty of Array(思维)
题意:求出数组中所有连续子序列的和,计算和时相同的数只计算一次。题记:只要把所有连续子序列写出来就容易找到规律。例:1 2 3 411212312342232343344数组中第一个数组出现了14次,第二个数出现了23次,第三个数出现了32次,第四个数出现了41次。那么就只剩下去重的操作了,每次都记录下a[i]在数组中的位置,当后面有同样的数出现时要把当前坐标减去记录下的坐标。再去乘上sum。#include<bits/stdc++.h>using namesp原创 2020-06-22 12:17:52 · 97 阅读 · 0 评论 -
ZOJ 3870 Team Formation(思维)
题意:两个数异或的结果大于这两个数,求有多少对这样的数。题记:找出所有数的二进制的左边第一个1的位置。vis[i]记录下1在第i位的数的个数。然后遍历所有数,当这个数的二进制的第i位为0时异或一个左边第一个1的位置在i的数是会变大的。例如:(二进制表示)100111异或1xxx和1xxxx都会变大。x取0和1都不会影响结果。#include<bits/stdc++.h>using namespace std;typedef long long ll;const int N=1e5原创 2020-06-21 20:12:12 · 126 阅读 · 0 评论 -
ZOJ 3869 Ace of Aces(序列处理)
题意:n张投票,投票最多的人成为王中王,但是不能有两个王中王。题记:把投票编号记录下来,遍历一遍找票数最多的,最后再看一下拥有最多票数的是不是只有他一人即可。#include<bits/stdc++.h>using namespace std;const int N=1010;int t[N];int main(){ int T; cin>>T; while(T--){ memset(t,0,sizeof(t));原创 2020-06-21 20:02:55 · 176 阅读 · 0 评论 -
ZOJ -3787 Access System(水题)
题目链接题意:每个学生进宿舍都要用卡,每次刷卡门会持续开l秒,求n个学生进入宿舍有多少个人要刷卡,且输出这些学生的序号。题记:按照每个学生进宿舍的时间排序然后模拟学生进宿舍的过程即可。#include<iostream>#include<vector>#include<algorithm>using namespace std;const int N=2e4+10;struct Node{ int s; int w; bool op原创 2020-05-18 14:38:08 · 138 阅读 · 0 评论 -
ZOJ - 3785 What day is that day? (打表或推公式)
题目链接题意:开始是星期六,给出一个n,求11 + 22 + 33 + … + nn天之后是星期几。题记:打表找循环节,要找到第294个数。也可以用数学方式推导出公式。#include<iostream>using namespace std;typedef long long ll;char str[10][10]={"Saturday","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday"};ll fast原创 2020-05-18 13:07:43 · 105 阅读 · 0 评论 -
ZOJ - 3782 Ternary Calculation(模拟)
题目链接题意:模拟出三元计算。题记:把两个运算符比较一下,优先级大的先算。直接模拟即可。#include<iostream>#include<algorithm>#include<cstring>using namespace std;int check(char c){ if(c=='-'||c=='+') return 0; else return 1;}int solve(char c,int x原创 2020-05-18 12:06:49 · 115 阅读 · 0 评论 -
ZOJ - 3778 Talented Chef(水题)
题目链接题意:一次可以煮m道菜,有n道菜,每道菜有a[i]个步骤,每次只能做一个步骤。题记:记录一下所有步骤中的最大值和总和,直接用总和除以m向上取整。如果答案比最大值小则取最大值。#include<iostream>#include<algorithm>#include<cstring>using namespace std;int main(){ int T; cin>>T; while(T--){原创 2020-05-18 12:03:52 · 105 阅读 · 0 评论 -
ZOJ - 3777 Problem Arrangement(状压dp)
题目链接题意:a[i][j]表示第i个数字放在第j位能得到的值,求所有排列顺序值的总和大于等于m的期望。题记:n个数的排列顺序一共有n!个。直接枚举出所有排列顺序的话最大有12!个(479001600),所以必定是会超时的。所以要用状压dp取解决。首先排列的数字一定是n个,那么我们用一个长度为n的二进制数去表示状态。1表示数字已经填了,0表示还没填。例如:0000011表示第六第七个数字已经填了,其余的还没填。dp[i][j]表示在i的这个状态值为j。j的值最大取到m。#include<i原创 2020-05-18 11:59:12 · 148 阅读 · 0 评论 -
ZOJ - 3776 Pokemon Master(水题)
题目链接题意:比较两个人宝可梦的总重量。题记:略。#include<iostream>using namespace std;int main(){ int T; cin>>T; while(T--){ int n,m; cin>>n>>m; int sum1=0,sum2=0,x; while(n--){ cin>>x;原创 2020-05-18 11:41:50 · 116 阅读 · 0 评论 -
ZOJ - 3714 Java Beans
题目链接题意:选出连续m个数,使得和最大。(数组形成一个圆)题记:开两倍的数组,在原数组后面在放一个原数组。然后找长度为m区间的最大值即可。#include<iostream>#include<cstring>#include<algorithm>using namespace std;const int N=250;int a[N],b[N*2...原创 2020-05-04 10:11:40 · 140 阅读 · 0 评论 -
ZOJ - 3712 Hard to Play
题目链接题意:一个音游,分数由point * (combo*2+1)计算,假设玩家很强,combo是一直连续的。求最低分和最高分。point分成50,100,300三种。题记:combo是从0开始的,最低分的话让300的先计算,50的最后计算,最高分则反之。#include<iostream>#include<cstring>#include<algorit...原创 2020-05-04 10:08:47 · 152 阅读 · 0 评论 -
ZOJ - 3710 Friends
题目链接题意:有n个人和m对朋友,其中两个人如果有k个共同好友,那么这两个人在一段时间之后会成为好友。题记:题目给出的是足够的时间,那么就要一直跟新,直到没有两个人可以成为好友为止。用类似邻接矩阵的方式存下两个人的关系。a[i][j]表示i个j是好友,由于好友是双向的,所以a[j][i]也要存。之后枚举所有人,然后记录下两个人之间有多少个共同好友,超过k个时要记录下两个人成为好友。#inc...原创 2020-05-04 10:04:01 · 151 阅读 · 0 评论 -
ZOJ - 3708 Density of Power Network
题目链接题意:求出线路数除以车的数量,线路1-2和线路2-1算作同一条线路。题记:记录下所有线路然后去重即可。#include<iostream>#include<cstring>#include<algorithm>#include<set>using namespace std;typedef long long ll;type...原创 2020-05-04 09:54:44 · 153 阅读 · 0 评论 -
ZOJ-3706 Break Standard Weight
题目链接题意:有两个数,把其中一个数分成两个数,这两个数的和等于原来的数(例如把5分成2和3),求这三个数相加或相减能得到多少个数。题记:把所有情况都枚举出来即可。#include<iostream>#include<cmath>#include<cstring>using namespace std;const int N=210;int nu...原创 2020-05-04 09:48:44 · 214 阅读 · 0 评论