![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
模拟
文章平均质量分 59
M18
当你还不能写出自己满意的程序时,你就不要去睡觉。
展开
-
Codeforces Round #318(Div. 2) A
题意:给你N个数,每个数代表一个人手里面有的票数、 你是第一个人、你可以用你的糖来换他们的票,糖是无限的、那么, 你想要手里面的票比其他人多,最少要给出几块糖?思路:模拟题,找出所有票数的最大值,如果是第一个人的票数,那么直接输出0、 否则我要用一块糖来换取他的票,那么他的票数就减少了一个,我的票数就多了一张、一直循环,循环到1号位手里面票数最多位置,那么就是最后的答案、原创 2015-08-30 20:19:44 · 249 阅读 · 0 评论 -
Codeforces Round #323 B Robot's Task
题意:给你n个数,没选定一个数之后要找大于等于他的最小的,也就是从最小的开始找,然后找第一个大于等于他的,问将所有的数都找完最少需要换几次方向、思路:直接模拟+贪心,一直到找完所有的数、从最小开始找,一直到找完,左边找完找又边,依次从左边的头或者右边的头开始找,一直到找完、AC代码:#include#includeconst int maxn = 1100;int n;int原创 2015-10-04 04:48:35 · 369 阅读 · 0 评论 -
HDU 5463 Clarke and minecraft
题意:给出你n个材料,这个人的背包有36个格子、每个格子最多装一种材料64个、 n行给出你每个材料的种类和属性、让你求最少要来回几次、思路:简单的模拟,有点贪心的意思、AC代码:#include#includeconst int maxn=1100;int T;int n,m,r;int vis[maxn];int main(){ scanf("%d",&T);原创 2015-09-20 00:45:17 · 297 阅读 · 0 评论 -
HDU 5455 Fang Fang
题意:给出你F0、F1、F2以及Fn=Fn-1+' f '、 给出你串S,S串是首位相连的、问S串在F里面选择最少用多少个Fi组成,必须将整个S串分解完毕、如果不能分解完毕那么输出-1、思路:模拟,将每个c的字符的位置求出来,因为c与c之间一定最少有两个f如果没有两个f那么一定是-1、 最后一个c与第一个c之间距离几个f特殊处理便可、还有两种特殊情况,一种是全为f的情况,如果是这种情况,那原创 2015-09-20 00:41:24 · 442 阅读 · 0 评论 -
BestCoder Round #59 B HDU 5500
题意:dxy家收藏了一套书,这套书叫《SDOI故事集》,《SDOI故事集》有n(n\leq 19)n(n≤19)本,每本书有一个编号,从11号到nn号。dxy把这些书按编号从小到大,从上往下摞成一摞。dxy对这套书极其重视,不允许任何人动这套书。有一天Evensgn到dxy家玩,dxy因为和妹子有约会,就让Evensgn自己待在他家。Evensgn对这套书非常好奇,偷偷的看了一下,结果发现原创 2015-10-10 22:34:22 · 332 阅读 · 0 评论 -
5499 SDOI
题意:一年一度的全国信息学奥林匹克竞赛(NOI)即将举办,SD省组织进行了一次省队选拔,一共有 n (n \leq 100)n(n≤100)名选手参加了这次省队选拔。今年,SD省的省队名额为 m (m \leq 50)m(m≤50) 人,即,今年的SD省队有 mm 名队员。按照惯例,SD省的省队选拔有两轮比赛,依次为“Round1”和“Round2”,每个Round的满分为 300300 分原创 2015-10-10 23:52:22 · 292 阅读 · 0 评论 -
Codeforces Round #325 A Alena's Schedule
题意:给你n个数,表示这个人的课程有则为1,没课则为0,每当他有课的接下来没课的时候,他就要回家他回家有个条件,就是有课之后最少是连续两次没课,他才可以回家,否则要在学校等待有课,那么,输出他在学校呆的时间、思路:将有课的下标记录下来,直接比较两者的距离,用总时间减掉回家的时间、注意:开头和结尾都会有空课,要注意减去AC代码:#include#includeconst int原创 2015-10-12 23:30:11 · 344 阅读 · 0 评论 -
Codeforces Round #325 C Gennady the Dentist
题意:一个医生给n孩子拔牙,每个孩子的都有三个参数,分别为他的v哭声,d失去信心,p原有信心每当一个孩子拔了牙之后,他的哭声会传递使其他的孩子失去信心,初始值为vi,每经过一个人减少vi-1,直至vi为0、如果其中有一个孩子,他的信心问你,这个医生能给几个孩子拔牙,输出他们的编号、思考:如果一个孩子为负数,他要跑,他后面的孩子都要-di、还有就是,如果这个孩子已经为负数的话,那么我原创 2015-10-13 03:31:53 · 582 阅读 · 1 评论 -
Codeforces Round #320 D "Or" Game
题意:输入n,k,x分别表示有n个数,然后可以使每个数乘以x,x可以使用k次思路:既然x>=2那么表示,如果某个数*x了最少,他要进1位、 那么既然如此,我们可以把所有的情况都找出来也就是说,首先我将k个x相乘,那么这样我就可以使某个数进位最多,既然如此我只要模拟情况然后相乘就可以了、模拟的方法就是,我将前i个|运算预处理出来,后n-i个|运算预处理出来、最后我找每个数*x和我预处理出原创 2015-10-12 15:12:28 · 270 阅读 · 0 评论 -
Codeforces Round #325 B Laurenty and Shop
题意:给你两组数,表示第一条街每家,相邻道路的要走的时间、第二组数表示第二条街每相邻道路的时间第三行表示,每家对应的马路行走要花费的时间、那么他从右下角走到做上角再回来要花费的时间是多少?他只允许过两次道,并且,他回来不可以走与第一次走的想同的路、思路:看图,从又下角走到左上角,只有n中方式、如果要想不同,直接将这n中花费的时间排序,输出最小的两个时间的合就是答案AC代码:#i原创 2015-10-13 00:08:27 · 393 阅读 · 2 评论 -
Codeforces Round #321 A Kefa and First Steps
题意:给你N个数,让你求连续最长不上升子序列的元素个数、思路:一重for循环,直接模拟,一次过、AC代码:#includeconst int maxn=110000;int a[maxn];int n;int main(){ while(scanf("%d",&n)!=EOF){ for(int i=0;i<n;i++) scan原创 2015-09-23 20:06:14 · 241 阅读 · 0 评论 -
Codeforces Round #324 B Kolya and Tanya
题意:输入n,一共有3n个人,围着一个桌子坐,每个人有1~3个硬币,如果 ai + ai + n + ai + 2n ≠ 6发硬币的人是满意的、 输出让这个发硬币的人满意的方法、 有可能很大答案要mod09 + 7、思路:考虑反面,每个三元组互相独立,然后有7种方案和为6,那么有7^n个不合法方案,答案就是27^n-7^nAC代码:#includeconst int mod原创 2015-10-07 12:55:36 · 328 阅读 · 0 评论 -
Codeforces Round #324 A Olesya and Rodion
题意:输入一个n和t让你输出任意一个n位数能整除t,如果没有则输出-1、思路:太水、、、只有n为1,t为10的时候为-1、AC代码:#includeint main(){ int n,t; while(scanf("%d %d",&n,&t)!=EOF){ if(t==10){ if(n==1) pri原创 2015-10-07 12:51:55 · 259 阅读 · 0 评论 -
Codeforces Round #324 C Marina and Vasya
题意,给你一个n和t,n表示S1和S2串的长度,让你找出任意一个T串,T串与S1对应位置不同的个数=t,T串与S2对应位置不同的个数=t、 如果没有T串输出-1,有则输出一种T串便可、思路:模拟,将S1[i]=S2[i]的赋值到T[i],然后将T串的其他位置初始为既不等于S1又不等于S2的、接下来直接模拟就可以了、感觉没什么难度、AC代码:#include#include原创 2015-10-07 21:48:00 · 337 阅读 · 2 评论 -
UVA 1388 - Graveyard
题意:n个点在一个圆上,每个点的距离平均分布,再加入M个点,那么最少需要移动多少距离可以让n+m个点平均分布,问最少移动的距离、思路:模拟,将N个点的位置求出来,再将n+m个点的位置求出来,第一个点都是固定不动的,其他的点只需要按照最短的移动便可、AC代码:原创 2015-09-10 00:29:58 · 356 阅读 · 0 评论 -
Codeforces Round #322 C Developing Skills
题意:给你N个数,和k值,问你这N个数除以10的整数位的最大值,可以将k值给N个数,问你能得到的最大值,N个数+k的值不可以超过100,超过100则无效、思路:模拟+贪心、 将n个数从小到大排,依次将k给出去就可以了、AC代码:#include#include#includeusing namespace std;const int maxn = 100100;struct no原创 2015-09-30 10:52:08 · 270 阅读 · 0 评论 -
Codeforces Round #322 D Three Logos
题意:给你6个数x1,y1,x2,y2,x3,y3、 这6个数分别为一个广告牌的长和宽、问你这3个广告牌是否可以组成一个n*n的正方形、 第一个广告牌的字母为A,第二个为B第三个为C输出这个正方形,如果有多组,随便输出其中一组便可、广告牌只能用一次,也可以旋转、思路:可以想到,如果三个广告牌可以组成正方形的话,那么正方形N的边长一定为6个数中的最大值、那么既然知道了正方形的大小,便可以将边原创 2015-09-30 11:01:39 · 320 阅读 · 0 评论 -
Codeforces Round #322 A Vasya the Hipster
题意:给出一个人蓝色袜子和红色袜子的数量、 出门穿一只蓝色一只红色就是时尚、否则为一般、 问:可以穿时尚和一般的天数各为多少、思路:水题,直接模拟一次过、AC代码:#include#includeint main(){ int a,b; int x,y; while(scanf("%d %d",&a,&b)!=EOF){ x=y=0;原创 2015-09-30 10:42:52 · 269 阅读 · 0 评论 -
Codeforces Round #322 B Luxurious Houses
题意: 给出你N个数,问你这个数想要比后面的数都大至少要加几? 思路: 有一点点考思路,从后向前找,依次找出最大值,直接比较就可以了,有一点点细节,就是要记录最大数和当前数的下标是否是同一位置,如果是则为0否则,直接算便可、AC代码:#include#includeconst int maxn=100100;int a[maxn];int b[maxn];int n;int原创 2015-09-30 10:47:40 · 354 阅读 · 0 评论 -
HDU 5443 The Water Problem 2015 ACM/ICPC Asia Regional Changchun Online
题意:给你n个数求这n个数中[l,r] 中的最大值为多少、思路:水题,直接过、#includeconst int maxn = 1100;int a[maxn];int q,l,r;int T,n;int main(){ scanf("%d",&T); while(T--){ scanf("%d",&n); for(int i=1;i原创 2015-10-02 16:02:35 · 254 阅读 · 0 评论 -
HDU 5444 Elven Postman 2015 ACM/ICPC Asia Regional Changchun Online
题意:给出你n个数来表示一个二叉树,让你查询q个数的位置,如果再根节点换行,否则按照图上小于当前根节点为"E",大于则为“W”、思路:直接模拟就可以了、 如果大于则输出"W",小于则输出“E”,如果大于则找第一个大于当前数的,小于则找第一个小于当前数的、边找边输出、AC代码:#include#includeconst int maxn=1010;int T;int n,m;i原创 2015-10-02 16:09:00 · 308 阅读 · 0 评论 -
Codeforces Round #323 A Asphalting Roads
题意:给你n*n个组数,要在n*n的格子里面,每个交点铺沥青,每组数有两个数值一个为行标一个为列标,问你在这n*n个组数中,在满足所有的行和列都填上要在哪几个工人处铺路,最后将工人按升序输出、思路:直接标记,如果当前行和列没有被标记那么选择当前工人、最后直接输出便可、AC代码:#include#include#includeusing namespace std;const i原创 2015-10-04 04:41:10 · 369 阅读 · 0 评论 -
Codeforces Round #323 C GCD Table
题意:由n个数,可以构成n*n的gcd矩阵给你n*n个数,表示这个n*n矩阵的元素(是任意顺序的)然后让你找到这n个数,满足这个gcd矩阵思路:既然满足矩阵,那么首先我将这n*n个数排序,按照降序找一定是可以的,因为首先要满足矩阵,最大的数一定是n个数中的一个。既然如此,每在确定一个数之前我将我已经确定的数他们的gcd都找出来,并且-2,原创 2015-10-05 15:19:02 · 517 阅读 · 0 评论 -
Codeforces Round #323 D Once Again...
题意:给你n和T,n表示n个数,T表示将这n个数复制T次、 问:复制了T次之后新生成的n*T个数的最长不下降子序列的长度为多少?思路:首先考虑一个问题,如果复制了T次之后,这T次中间的很多次是不是选择的是n个数中出现最多的某个数? 答案是,一定是。那么,接下来还有一个问题就是,我很有可能将这n个数复制了很多次之后这些数可以组成一个新的最长不上升子序列、 首先,我们算出将n个数中出现次数原创 2015-10-06 00:09:22 · 414 阅读 · 0 评论 -
Codeforces Round #321 B Kefa and Company
题意:给你n和d,n表示有几个人,d表示相差值,给出你每个人的价值和友谊值,让你求出在每个人之间相差不超过d的情况下,友谊值的最大值、思路:模拟,依次向前找,找出一个那么便与之前我找过的友谊值的和值进行比较大小,最后输出最大值、之前写的结构体型似乎有问题、因为在大数据的时候会超时,换成用容器就过了、48msAC代码:#include#include#include#inclu原创 2015-09-23 20:08:55 · 382 阅读 · 0 评论