bestcoder杯回顾

题目列表:hdu5214~5223

5214:

当时第一反应是由递推公式推出通项公式,事实证明这就是作!大!死!

因为通项公式是这样的:L[n]=a^(n-1)*(b+L[1])-b

于是就需要快速幂。然而用了快速幂还是慢。。。【实际上是被卡在了7000ms多一点点。。。】

其实直接放到数组里一项一项递推就行。。速度并不慢还省事

另外本题还有一个point:被mod的那个数字很奇怪,所以直接用unsigned int存就行。不仅省空间还不用mod了(溢出相当于自动mod)

当时没想起来这个于是用了long long,于是数组存不下,于是T^T

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 #define LL  unsigned int
 5 //#define MOD 4294967296
 6 using namespace std;
 7 LL N,L1,R1,a,b,c,d,T;
 8 LL ll[10000010],rr[10000010];
 9 LL li,ri;
10
11 int main()
12 {
13     scanf("%d",&T);
14     while(T--)
15     {
16         scanf("%d%d%d%d%d%d%d",&N,&L1,&R1,&a,&b,&c,&d);
17         ll[1]=L1;   rr[1]=R1;
18         if(L1>R1)   swap(L1,R1);
19         LL minl=L1,minr=R1,maxl=L1,maxr=R1;
20         for(LL i=2;i<=N;i++)
21         {
22             ll[i]=ll[i-1]*a+b;
23             rr[i]=rr[i-1]*c+d;
24             li=ll[i],ri=rr[i];
25             if(li>ri)   swap(li,ri);
26             if (ri<minr)
27             {
28                 minl=li;
29                 minr=ri;
30             }
31             if (li>maxl)
32             {
33                 maxl=li;
34                 maxr=ri;
35             }
36         }
37         bool ok=false;
38         //cout<<minl<<","<<minr<<"  "<<maxl<<","<<maxr<<endl;
39         for(LL i=1;i<=N;i++)
40         {
41             li=ll[i];   ri=rr[i];
42             if(li>ri)   swap(li,ri);
43             //cout<<li<<","<<ri<<endl;
44             if((li>minr)&&(ri<maxl))
45             {
46                 ok=true;
47                 break;
48             }
49         }
50         if (ok) printf("YES\n");    else printf("NO\n");
51     }
52     return 0;
53 }

5223:

这题当时交给队友了。。。。

题意:给出若干L,R,A,表示gcd(p[L],p[L+1],...,p[R])=A。要求解出原数组p[]

sol:首先来看几个有代表性的情况:

1 9 7     1 9 6    1 9 8    1 9 3    1 9 4    1 9 8    1 5 3

2 5 3     2 5 4    2 5 4    2 5 7    2 5 6    2 5 4    2 7 7

stupid     stupid     stupid    stupid     stupid    ok      ok

对所有的L,R,A,令p[i]=lcm(p[i],A)(L<=i<=R)。最后再验证一遍

其实最后验证的时候求区间的gcd可以用优化的方法(类似RMQ的那个)。本题数据小懒得用了= =

 1 #include <iostream>
 2 #include <cstdio>
 3 #include <cstring>
 4 using namespace std;
 5 #define LL long long
 6
 7 LL  p[1010];             //array
 8 int L[1010],R[1010];     //Li,Ri
 9 LL  A[1010];             //Ansi
10 int T,N,Q;
11
12 LL gcd(LL a,LL b)                  //辗转相除法,返回gcd(a,b)
13 {
14     if (b==0) return a;
15     return gcd(b,a%b);
16 }
17
18 LL lcm(LL a,LL b)
19 {
20     LL t=gcd(a,b);
21     t=a*b/t;
22     return t;
23 }
24
25 LL ggcd(int l,int r)
26 {
27     LL aa=p[l];
28     for(int i=l+1;i<=r;i++)
29         aa=gcd(aa,p[i]);
30     return aa;
31 }
32
33 LL llcm(int l,int r)
34 {
35     LL aa=p[l];
36     for(int i=l+1;i<=r;i++)
37         aa=lcm(aa,p[i]);
38     return aa;
39 }
40
41 int main()
42 {
43     scanf("%d",&T);
44     while(T--)
45     {
46         scanf("%d%d",&N,&Q);
47         for(int i=0;i<=1000;i++)p[i]=1;
48         for(int i=1;i<=Q;i++)
49         {
50             scanf("%d%d%I64d",&L[i],&R[i],&A[i]);
51             //LL t=llcm(L[i],R[i]);
52             //t=lcm(t,A[i]);
53             for(int j=L[i];j<=R[i];j++)
54                 p[j]=lcm(p[j],A[i]);
55                 //p[j]=t;
56         }
57         bool ok=true;
58         for (int i=1;i<=Q;i++)
59         {
60             LL t=ggcd(L[i],R[i]);
61         //    printf("%d,%d = %I64d\n",L[i],R[i],t);
62             if (t!=A[i])    ok=false;
63         }
64         //            for(int i=1;i<=N;i++)
65         //                printf("%d ",p[i]);
66         //            printf("\n");
67         if(ok)
68         {
69             for(int i=1;i<N;i++)
70                 printf("%I64d ",p[i]);
71             printf("%I64d\n",p[N]);
72         }
73         else
74             printf("Stupid BrotherK!\n");
75     }
76     return 0;
77 }

时间: 2024-07-30 18:39:24

bestcoder杯回顾的相关文章

2015年蓝桥杯省赛B组C/C++(试题+答案)

首先说,这次我是第二次参加蓝桥杯(大学里最后一次),可这次去连个三等都没拿到,有些心灰意冷,比上一次还差, 当时看到成绩出来的时候有些失落,但是跌倒了,再站起来继续跑就可以了.可能是状态不好吧,纯属自我安慰. 接下来我把今年的题目又重新做了一遍,写下了这篇博客,如果也有需要探讨答案的,希望可以有帮助. 第一题: 第1题:统计不含4的数字 题目大意 统计10000至99999中,不包含4的数值个数. 解题分析: 第一种解法: 数学方法,这种是在网上看到的一种解法: 最高位除了0.4不能使用,其余8

【BestCoder】【Round#42】

模拟+链表+DP Orz AK爷faebdc A Growin要跟全部的n个人握手共2n杯香槟,再加上每对关系的两杯香槟,直接统计邻接矩阵中1的个数,再加2n就是answer 1 //BestCoder 42 A 2 #include<vector> 3 #include<cstdio> 4 #include<cstring> 5 #include<cstdlib> 6 #include<iostream> 7 #include<algor

过去一年之回顾,现在一年之目标。

元旦回去走了两天,本来是想散散心,想些事情,可惜未能如愿,一个字“懒”,回去都睡到10点才起来. 看看自己的状态,和大家现在做的,觉得有必要写点东西,一则是做的不好的引以为戒,一则是对15年立下目标. 先大致回顾下这一年的事情吧. 14年2月~4月,“煤气表头数字识别”项目,其中3月18日~3月20日到上海参加了国际机器视觉展: 14年5月~14年6月,跟随刘浪学长做了,51单片机的信号发生器(正弦波.三角波.锯齿波,频率可调),还有12年的TI杯题目,程控增益放大器: 14年7月11~8月4日

《回顾2014,展望2015》

系列文章: <回顾2011,展望2012> <回顾2012,展望2013> <回顾2013,展望2014> <回顾2014,展望2015> 写在前面 伴随了南京2015年的第一场雪花翩翩飘落,又是新的一年,新的开始.对已经尘埃落定的2014做个简短的总结.毕业四年的回顾往昔,总是伴随懊悔,悔恨.很多的是事情,仅限于说,吹吹牛,没有毅力坚持下去.2014美好的开始,但是结尾很不能让自己满意啊.闲话少续吧,下面简单回顾2014. 回顾2014 关于这一年的工作跨

2015年阿里工作与生活回顾

前言 现在已经进入了2016年,这是我从事IT这一行业的第10年.不知道能否称得上是一个职场老人,但终有种老年人的心态,喜欢回忆过去——最近被初中同学拉入一个初中同学的群里,刚开始两天让人激动得不舍得睡去,因为群里的老同学们都聊得火热,可我竟然在很长一段时间内都没有敲一个字或者说一句话,只是看着大家互相提起当年的种种糗事. 十几年前的很多事情虽然还记着,但是更多的却忘却了.远的记不起来,不如回顾下刚刚过去的2015年... 御膳房 14年年底至15年1月31日整整2个多月的时间,我们整个大部门突

参加蓝桥杯的感受 2015-04-11

如果不考虑多年前的NOIP,这是我上大学以来第一次参加线下的编程比赛.总结:跪了.展望:再接再厉. C/C++ A组,北京联合大学,9:00-13:00.一共十个题,我回顾一下我的跪姿… 第一题没考虑到整数还能有负的.第二题考虑到润年了算的时候给忘了.第三题送分题.第四题%*s是啥东西…第五题是个递归,填空给了一条横线,我以为只能有一个语句…第六.七题算的数字我不敢肯定.第八题送分题.九.十题没有看懂. 也不知道能不能给我发个纪念品.印有“魂断蓝桥”的T恤? 虽然跪得惨烈,不过感觉还是挺有意思的

《善圈第27期天天圈》5.23精彩回顾:善圈微商,干货鸡汤!

原标题:<善圈第27期天天圈>5.23精彩回顾:善圈微商,干货鸡汤! 我们创业做微商碰到问题的时候,要持续地问自己几个为什么?由此找到问题的根源所在,然后针对不同层面的原因,分别思考解决方案. 微商创业在不断学习中改进的循环,是生意能否成功的保证.京基100大厦71层善圈天天圈活动,每天都有企业家与创客来这里学习交流,他们在这里分享自己的创业经验. 现代社会对大型企业已经有一整套成熟的管理技巧,但对于微商创业者来说,基本上还处在摸着石头过河的阶段.这里有些观点或许可以帮助来京基善圈学习交流的创

[转帖]期待下一个十年|CIS 2019温馨回顾(附PPT下载)

期待下一个十年|CIS 2019温馨回顾(附PPT下载) https://www.freebuf.com/fevents/222236.html shidongqi2019-12-06共26587人围观 ,发现 4 个不明物体活动 距离CIS 2019网络安全创新大会结束已经过去了整整一周的时间,FreeBuf网站评论.私信.微博.微信公众平台……涌现出大量询问PPT下载链接,看到那么多求知若渴的小伙伴,笔者已经来不及一一去回复,只能去加紧催促嘉宾PPT脱敏情况,所以这里先奉上CIS大会PPT下

Spring知识点回顾(01)

Spring知识点回顾(01) 一.依赖注入 1.声明Bean的注解 @Component @Service @Repository @Controller 2.注入Bean的注解 @Autowired @Inject @Resource 二.加载Bean 1.xml方式 - applicationcontext.xml : Beans, Bean, Component-Scan 2.注解方式 - @Configuration,@ComponentScan,@Bean 用@Configurati