UVa
NOIAu
最后一天啦~
展开
-
UVa 11426题解 GCD - Extreme (II) 题解
…我怎么又在做水题题目传送门翻译:这道题是说给一个n然后求所有满足1<=i<j<=n1<=i<j<=n的数对(i,j)(i,j),求他们的gcdgcd之和题解:我们来推结论我们要求的是gcdgcd之和,如果我们把gcd(1,n),gcd(2,n),gcd(3,n)...gcd(n−1,n)gcd(1,n),gcd(2,n),gcd(3,n)...gcd(n-1,n)的和命为f(n)f(n)如果令S(原创 2017-09-14 08:35:21 · 375 阅读 · 0 评论 -
UVa 11462 Age Sort 计数排序法题解
这道题就是说有很多数,让你排序输出,然后给你的空间只有2Mb,但是数字都比较小,所以我们直接存一个数组就可以了。代码:#include<cstdio>#include<iostream>#include<cstring>using namespace std;int n,tmp,c[105];int main(){ while(scanf("%d",&n)==1&&n){原创 2017-09-02 16:09:34 · 335 阅读 · 0 评论 -
UVaLive 3177 Beijing Guards,CERC 2004,LA3117 题解
题目传送门这道题看似复杂,其实我们可以二分答案再check,二分的是最少的礼物,check的是是否可行,显然如果输入的n是偶数的话,那么我们交错地放礼物,也就是说答案就是max(r[i]+r[i+1]),如果是奇数的话,那么我们除了第一个人放1到r[1]号礼物,其他的人如果是编号偶数的话就尽量往前放,如果是编号奇数的话就尽量往后放,那么我们维护一个left和一个right数组,分别存第几个人在区间1原创 2017-09-02 11:53:57 · 360 阅读 · 0 评论 -
UVaLive(LA) 3902 Network,Seoul 2007
题目传送门显然先让第一个服务器成为根节点,然后我们搜一遍,先把所有叶节点入到一vector里面,vector的第一维是深度,出来之后让最深的叶节点晚上找第k级fa,因为这样可以让其影响力最大,然后去往所有方向搜这个fa能影响到的地方,然后打上标记,出来之后继续for叶节点,直到所有的叶节点都被覆盖位置。#include<cstdio>#include<cstring>#include<iostr原创 2017-09-02 11:46:37 · 425 阅读 · 1 评论 -
UVa 11384 Help is needed for Dexter
这道题的策略其实最开始我是想的每次都是选取最大的面积,因为选择的是一个同一个高度,然后所有大于这个高度的都可以删去这一部分,最开始我想的是令x属于1到n的范围,我们把数字想成可视化的高度递增的柱状图,那么我们让x*(n-x)最大,好像x就刚好在n的一半那个位置,于是受到启发,然后发现其实先分成两半,然后像刚才的描述那样去删除,发现右边的部分就一定看起来小于等于左边的部分,这个时候其实就等于只有左边的原创 2017-09-01 20:48:22 · 277 阅读 · 0 评论 -
UVa 11464 Even Parity
给一个n*n的01矩阵,任务是吧尽量少的0变成1使得每个元素的上下左右的元素和加起来均为偶数。 显然我们可以枚举第一行的情况,然后就可以推下一行,再推下一行,推得时候看能否达到,是否冲突就可以了。#include<cstdio>#include<cstring>#include<iostream>#include<cmath>#include<algorithm>using namesp原创 2017-09-01 20:39:23 · 262 阅读 · 0 评论 -
UVa 10881 Piotr's Ants 题解
%刘汝佳这道题看似非常难搞,好像有非常复杂的模拟操作,如果完全模拟的话又会超时,那怎么办呢,我们可以这样思考,如果在很远处看着群蚂蚁来来去去,会发现看似调转了方向,其实却好像是没有调转方向而是直接各自走过去了,因为你实在看不清到底是哪知蚂蚁调转了方向还是直接走过去了,因为一群蚂蚁都是长的一个样子(显然我们假装他们都是一个样子)。所以我们只需要考虑每只蚂蚁如果不和其他蚂蚁相遇而掉头,那么最后会在哪里。原创 2017-09-01 19:49:12 · 327 阅读 · 1 评论 -
UVa - 11729 Commando War
题解:显然这道题我们只需要按照执行任务时间来进行贪心就好了,我们要先交代耗时间长的任务,再交代耗时较少的任务,使得最后的总时间最少。代码:#include<cstdio>#include<algorithm>using namespace std;struct Q{int a,b;}q[10000*5];bool cmp(const Q& A,const Q& B){return A.b>B原创 2017-08-30 14:58:56 · 271 阅读 · 0 评论 -
UVa 11300 Spreading the wealth
题解:显然我们这里可以设一些方程,因为我们最后要让每一个人的金币数相等,那么我们现在可以假设每个人向左边的人给了多少金币,比如我们令x2x_2为22号给11号了多少金币,当然,如果给的金币的数量是负的,那么实际上是11给22了金币。 那么我们显然可以得到如下方程 令M=sum/nM=sum/n,即最后的每个人的值 A1−x1+x2=MA_1-x_1+x_2=M A2−x2+x3=MA_2-x原创 2017-08-30 15:24:16 · 307 阅读 · 0 评论 -
UVA - 11292 Dragon of Loowater
https://vjudge.net/problem/UVA-11292DescriptionOnce upon a time, in the Kingdom of Loowater, a minor nuisance turned into a major problem. The shores of Rellau Creek in central Loowater had alway原创 2017-08-30 14:40:36 · 286 阅读 · 0 评论 -
UVa的几道水题题解
And Then There Was One, Japan 2007,LA 3882 题解Vjudge传送门题意:nn个数排成一圈,第一次删除mm,以后没kk个数删除一次,求最后一个被删除的数 数据范围:多组数据,2<=n<=10000,1<=k<=10000,1<=m<=n2<=n<=10000,1<=k<=10000,1<=m<=n题解:显然我们已经不能模拟了,因为数据规模实在是太大啦,已经不原创 2017-09-07 20:09:34 · 624 阅读 · 0 评论 -
Shanghai 2006,UVaLive(LA) 3695 Distant Galaxy题解
Vjudge传送门题意:是说给出一个平面上的n个点,现在要找一个矩形,使得边界上包含最多的矩形。题解:…平时做过找出一个固定大小的矩形然后找包含最多的星星的时候能包含多少颗星星,而没有做过这种题,当我思考了很久之后,终于发现了原来刘汝佳的题解写的很好…于是我看了题解,并且几乎是copycopy了一份代码 我们首先的想法是通过枚举上下边界来进行计算,也就是说我们枚举每一个纵坐标的值,然后在这两个纵坐原创 2017-09-06 18:26:21 · 395 阅读 · 0 评论 -
UVaLive(LA) 3029 City Game,SEERC 2004题解
Vjudge传送门题意:这道题是要我们找出一个面积最大的子矩阵。然后让我们输出这个矩阵的面积乘3的结果(其实我不是特别明白为什么要乘三,乘三难道会让这道题的难度陡增???),然后矩阵描述是R和F,F表示是空地,R表示是障碍,只有是空地的地方才可以被划为子矩阵… 举个例子 F F F F F R R F F 的答案是2题解:显然我们这道题如果直接暴力的话,会非常难受,虽然我们可以维护01矩阵原创 2017-09-06 18:10:18 · 399 阅读 · 0 评论 -
UVaLive 2678(LA)Subsequence SEERC 2006 题解
UVa传送门Vjudge传送门题意:这道题是要在一个由n个正整数组成的一个序列里面求一个长度对钻的连续序列使其和大于等于一个给定的整数SS(10<s<=100000,S<1e910<s<=100000,S<1e9)题解:显然我们发现,如果现在已经有满足的序列使其大于等于这个给定的数SS了,比如说是下标为i−>ji->j的序列,那么显然如果我们的jj指针++++,i−>j+1i->j+1的和一定也大于原创 2017-09-06 17:41:44 · 429 阅读 · 0 评论 -
UVa 11078 Open Credit System题解
给一个长度为n的序列,然后我们找一对数使得Ai-Aj的值最大并且i#include<cstdio>#include<iostream>#include<cstring>using namespace std;int main(){int T,n; scanf("%d",&T); while(T--){ scanf("%d",&n);int ans=-21474原创 2017-09-02 16:13:26 · 288 阅读 · 0 评论