一丢丢思维就ok 题目大意: 魔法师要煮药,有n个等级的药,所需要的药物为a1,a2...an,意为第n级需要多少药物,下一行为库存的不同等级药物,药物可降级使用不可升级. 思路:从高级药物开始解,把没用完的药物存起来放到下一及使用. 代码如下: #include <iostream> #include <string.h> using namespace std; ],b[],all,flag(); long long sum; int main(){ cin>>t;…
一个思维水题 题目大意为,一个邮递员要投递N封信,一次从邮局来回只能投递K封.求最短的投递总距离.需注意,最后一次投递后无需返回邮局. 本题思路要点: 1.最后一次投递无需返回邮局,故最后一次投递所行走距离不必乘2(即不必记录返程),所以最后一次投递的是最远的三个信: 2.画图模拟可知,我们可将正负轴的邮件分开进行处理,先处理某一轴的全部信件,在处理另一轴的全部信件: 根据上述思路可得如下代码: #include<iostream> #include<algorithm> #inc…
毒瘤出题人,坑了我们好久,从基本的素数筛选,到埃氏筛法,到随机数快速素数判定,到费马小定理,好好的水题做成了数论题. 结果答案是 2*n=n+3*n,特判1,2. 以下为毒瘤题目: 题目大意: 输入一个数n, 输出两个合数(即非素数)a,b 实现 n+a=b 解题思路 3n=n+2n; 特判1.2 代码: #include<iostream> #include<stdio.h> using namespace std; typedef long long ll; int T; ll…
这题前三段都是一堆吹爆赞助商的屁话,正式题目在图片下边,一个简单模拟题. 题目大意: 有n个男生,m个女生在进行舞会,其中一部分男生祥和比自己矮的女生跳舞,一部分男生想和比自己高的女生跳舞,一部分女生想和比自己高的男生跳舞,一部分女生想和比自己矮的男生跳舞: 所以,我们可以这样配对:想跟比自己矮的女生跳舞的男生——想跟比自己高的男生跳舞的女生:想跟比自己高的女生跳舞的男生——想跟比自己矮的男生跳舞的女生. 分组,排序,扫描配对,完事.(不过比赛中某人把代码里的n,m搞错了,从开头debug到封榜…
We Love MOE Girls Time Limit: 1000/500 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 208    Accepted Submission(s): 157 Problem Description Chikami Nanako is a girl living in many different parallel worlds. In this…
https://vjudge.net/contest/285902#overview A.Marjar Cola #include <bits/stdc++.h> using namespace std; int T; int main() { scanf("%d", &T); while(T --) { int x, y, a, b; ; scanf("%d%d%d%d", &x, &y, &a, &b); ||…
题目链接  The 17th Zhejiang University Programming Contest Problem B 题意  给定一棵树,现在要加一条连接$1$(根结点)和$x$的边,求加了这条边之后,所有点到根结点的距离的和的最小值.   输出这个最小值即可. 当加的这条边为$1-x$时,$x$和$1$的中点及以下的所有点到根结点的距离都发生了变化,其他点都没有发生改变. 现在设$ans[i]$表示当加的这条边为$1-x$时的答案,考虑答案从某个点转移到他的儿子. 首先树型DP预处…
要点 题目传送 题目本质是每个点必属于两个集合中的一个,伴随的性质是:如果一个人说别人true,则他们一定属于同一阵营:如果说别人fake,一定不属于同一阵营. 每个点拆为\(i\)和\(i + n\)分别代表他属于某种阵营(目前还不确定),然后根据上述性质边读入边合并同类. 这样扫一遍,如果某个\(i\)和\(i + n\)属于同一阵营则矛盾,无解. 若有解,对于每个点扫一遍和他同阵营的人,为了使fakeman尽可能地少,\(<=n\)的人少就把\(<=n\)视为fakeman:否则把\(&…
题目传送 dp是常规的:\(m^2\)的预处理:把位置存进vector然后\(O(1)\)算出想要的:WA点:要注意特意设置一下val[i][v.size()]=0,即全天都放鸽子则花费时间为0. #include <bits/stdc++.h> using namespace std; int T, n, m, d, ans; int val[205][205], dp[205][205]; char s[205]; int main() { for (scanf("%d"…
题目传送 思路是始终维护西瓜数量的区间,即L代表目前可以达到的最少的,R是最多的,然后判断一下. #include <bits/stdc++.h> using namespace std; const int maxn = 1e5 + 5; int T, n, m, a[maxn]; int main() { for (scanf("%d", &T); T; T--) { int maxx = 0, lila = 0; scanf("%d %d"…