博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
江西理工大学南昌校区cool code竞赛
阅读量:6252 次
发布时间:2019-06-22

本文共 11163 字,大约阅读时间需要 37 分钟。

      这次比赛原本就是来打酱油的,想做个签到题就走!一开始不知道1002是签到题,一直死磕1001,WA了四发过了,回头一看Rank,三十名,我靠!看了1001的AC率,在我AC之前只有一个人AC了,当时我AC了1001,感觉松了口气,终于算是签到了,看AC率,1%,吓死宝宝了!我啥时候变得这么屌了,连我们学校的大佬都没AC出来,被我这样一个菜鸡给AC了,顿时感觉信心回来了,然后我的电脑上插了一个气球,莫名其妙,还有气球???回头看1002,我靠,WA了三发,什么情况,10^9,肯定超时,WA了一发,原本想什么快速幂弄出来,我真是傻了眼,又WA了两发,我静下心来想想,人家最快27秒AC,不可能很复杂,结果再读了一遍题目,被坑啦!就总共两种情况,n=0和n!=0的情况,然后AC了!Rank 15~~,然后1005我就不说了,估计是没有想清楚,WA了5发,最后Rank 21结束,没办法咯!好好学吧!为了自己的未来,加油!

1001--------------------------------------------------------------------------------------------------------------------------

三种橙子

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 201   Accepted Submission(s) : 7

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

江理著名理论AC选手橙子最近在追一个汉子(23333不要问我为什么是汉子),他为了讨取汉子的开心,他准备了若干个三种颜色的橙子,分别为红色,绿色,青色,现在他打算把橙子放到桌子上,摆放的规则是这样的,每个桌子必须放满3个橙子,且每个桌子上橙子颜色的数量要求大于等于两种,现在给出你各个橙子的数量,想问下聪明的你,这么多橙子能放多少张桌子。(注意,一个桌子必须放满橙子才算数)

Input

输入a,b,c分别表示红橙子,绿橙子,青橙子的数量。(
0a,b,c2109)(多组输入)

Output

最多能放几张桌子

Sample Input

5 4 31 1 12 3 3

Sample Output

412对于第一组数据 我们可以划分为gbbrggbrrrrgg表示绿苹果,r表示红苹果,b表示青苹果

Author

萌妹纸
思路:三个数,判断最大的那个是不是大于另外两个和的两倍,是输入两个和,否则输出三个数相加除以3;
下面给出AC代码:
1 #include 
2 using namespace std; 3 int main() 4 { 5 long long a,b,c; 6 while(scanf("%lld%lld%lld",&a,&b,&c)!=EOF) 7 { 8 long long s=a+b+c; 9 long long x,y,z;10 if(a>=b)11 {12 if(a>=c)13 {14 x=a;15 if(b>=c)16 y=c;17 else y=b; 18 }19 else x=c;20 }21 else 22 {23 if(a>=c)24 x=b;25 else26 {27 y=a;28 if(b>=c)29 x=b;30 else x=c;31 }32 }33 z=s-x-y;34 long long t=s/3;35 if (y+z<=x&&s>=3)36 {37 if(y+z<=t)38 printf("%lld\n",y+z);39 else printf("%lld\n",t);40 }41 else42 printf("%lld\n",s/3);43 }44 return 0;45 }

1002-------------------------------------------------------------------------------------------------------------

会喊666的咸鱼

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 277   Accepted Submission(s) : 53

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

江西理工大学竞赛队有一个LOL打的特别好的学长-李俊贤,他曾经放出大话,他一个人带着4个只会喊666的咸鱼就能打进世界总决赛,单杀faker,现在他正在为着自己的梦想不断奋斗者(解释下,他的梦想当然不是单杀faker,而是找4条咸鱼),现在贤大想了一道问题来考考你们,做出来的就可以成为贤大的咸鱼了2333333.

Input

输入一个整数n
,求666的n次方的个位数。(多组输入)

Output

对于每组输入数据,输出结果。

Sample Input

1

Sample Output

6

Author

萌妹纸
思路:0的话输出1,别的输出6;
下面给出AC代码:
1 #include 
2 using namespace std; 3 int main() 4 { 5 int n; 6 while(scanf("%d",&n)!=EOF) 7 { 8 if(n==0) 9 printf("1\n");10 else if(n>=1)11 printf("6\n");12 }13 return 0;14 }

1003--------------------------------------------------------------------------------------------------------------------

学妹的告白

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 69   Accepted Submission(s) : 2

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

一位学妹喜欢萌樱花学长已经好长一段时间了,今天很意外在机房遇见萌樱花学长~
太过直白反而会吓着学长,学妹心里是这么想的,于是她想了一个游戏。
学长,我们玩一个游戏吧,“游戏?”学长满脸疑问看着她。
哎呀,是这种的,我们现在纸上画一个方框,平均分成n份,编号为1~n,然后呢,我们从1号开始移动k个数字,如果遇上边界就改变方向,就是下面的样子,比如8个格子,移动两个数字(图片不能正常显示请点击:链接 )
1->3->5->7->7->5->3->1->3....如果这样一直跳,就会出现死循环,不能把每一个格子都踩中,那么我们需要最小的k是多少时才能满足每一个格子都踩中呢?
“那不是等于1么”学长脱口而出~
这样就没法玩了,难怪都这么久都没有女朋友,当然k不能等于1!
“那我再想一想”,刚说完,学长就得到了答案,学妹失望的走了。
“奇怪,明明答案是正确的啊,怎么不开心呢?”(真实的故事)

Input

输入n表示划分n个格子
(2<=n<=10^5)
(多组输入)

Output

输出最小的k满足每一个格子都踩中
k不等于1

Sample Input

8

Sample Output

31->4->7->6->3->2->5->8 全部踩中

Author

樱花落舞
思路:给出两种方案,一是打表模拟!
给出参考的伪代码:
1 int flag[N]; 2 int check(int x,int n) 3 { 4     for(int i=1;i<=n;i++) 5         flag[i]=0; 6     int ans=0; 7     int st=1; 8     int dir=1; 9     while(ans
n)18 st=2*n-st,dir=0;19 //cout<
<<" xxx "<
<

下面给出AC代码:

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #include
13 #define PI acos(-1.0)14 #define N 11111115 #define M 100000000716 #define inf 1e917 #define eps 1e-818 #define dazhi 214748364719 using namespace std;20 typedef long long ll;21 int main()22 {23 int a[10]= { 3,5,7,11,13,17,19,23};24 int n;25 while(cin>>n)26 {27 int l=3;28 for(int i=0; i<7; i++)29 {30 if(n%l==1)31 l*=a[i+1];32 else33 {34 printf("%d\n",a[i]);35 break;36 }37 }38 }39 }

方案二,

如果做过HDU1222题估计会好很多,结论就是gcd(2*n-2,k)==1时,所有格子可以踩中

HDU1222是一个圈啦,这里不是,我们要看成一个圈,比如12321,我们取1232为循环,就是2*3-2(2*n-2)

下面给出AC代码:

1 #include 
2 #include
3 #include
4 #include
5 #include
// C++头文件,C++完全兼容C 6 #include
// C++头文件,C++完全兼容C 7 #include
8 #define fre freopen("out.txt","w",stdout) //以文件代替控制台输入,比赛时很常用,能缩短输入测试样例的时间 9 #define INF 0x3f3f3f3f10 #define inf 1e6011 using namespace std; // C++头文件,C++完全兼容C12 const int maxn = 200;13 int a[maxn];14 int b[3];15 int ans,n,k;16 17 int main()18 {19 while(cin>>n)20 {21 for(int i=2; i<=2*n; i++)22 {23 if(__gcd(2*n-2,i)==1)24 {25 cout<
<

1004--------------------------------------------------------------------------------------------------------------------------------

豆豆的三进制计算机

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 31   Accepted Submission(s) : 2

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

豆豆最近思考计算机为什么要使用二进制的时候,突然想到为什么不使用三进制呢。三进制明显更适合人类思维。毕竟三进制可以表示事物的三种状态(真,假,未知)
三进制是以3为基数的进制。和二进制一样,三进制的数位,称为三进制位(trit),每个三进制位包含
log23(约1.58个)二进制位的信息量。通常,三进制中使用0、1、2三个数字。
n!末尾有多少个0这样的问题对于豆豆来说是非常简单的。豆豆突然想到那么n!转换成3进制后,末尾有多少个0呢?

Input

一个整数n(1<=n<=10^18)
(多组数据)

Output

输出n!转换成3进制后,末尾0的个数

Sample Input

3

Sample Output

1

Author

木木

Source

木木
思路:

我们想一想十进制怎么求末尾0,嗯嗯,当然是找被10整除的个数喽

这里情况一样的啦,我们就一直除以3,一直除以3,找被3整除的个数

下面给出AC代码:

1 #include 
2 #define freout freopen("out.txt","w",stdout) 3 #define frein freopen("in.txt","r",stdin) 4 int main () 5 { 6 // frein; 7 // freout; 8 long long n; 9 while(~scanf("%lld", &n))10 {11 long long sum = 0;12 long long tmp = 3;13 while (n >= tmp)14 {15 sum += (n / tmp);16 tmp *= 3;17 }18 printf("%lld\n", sum);19 }20 21 return 0;22 }

1005--------------------------------------------------------------------------------------------------------------------------

袁少的游戏

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 200   Accepted Submission(s) : 24

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

编故事编的好累,懒得编了,直接说了,给你一个n,然后输入n个数,问你这n个数可不可以通过部分加上一个数或者减去一个数使所有数都相等(这个数是固定的),如果可以输出jxust,不可以则输出ecjtujxnu

Input

输入一个数n(1<=n<=10^5
然后输入n个数。(多组输入)

Output

输出jxust或ecjtujxnu

Sample Input

51 3 3 2 151 2 3 4 521 2

Sample Output

jxustecjtujxnujxust第一组样例可以通过所有的3都减一,所有的1都加一,使全部都变成2.所以输出jxust第三组样例可以让1加上1,使所有数都变成2,或者让2减去1,使所有数都变成1,所以输出jxust

Author

萌妹纸
思路:

大概知道了如果数组中只存在两种数字,必定是符合要求的

三种如何判断,最小的数字必须增加一个数,最大的数字必须减少一个数字,他们要和中间数字相同,那么是a[3]-a[2]==a[2]-a[1]的关系

我们需要做的就是去重计算出他的种类,排序判断

下面给出AC代码:

1 #pragma comment(linker, "/STACK:1024000000,1024000000") 2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #include
13 #include
14 using namespace std;15 #define ll long long16 #define pi (4*atan(1.0))17 #define eps 1e-1418 #define bug(x) cout<<"bug"<
<
4)33 printf("ecjtujxnu\n");34 else35 {36 if(cnt<=3)37 printf("jxust\n");38 else if(a[3]-a[2]==a[2]-a[1])39 printf("jxust\n");40 else41 printf("ecjtujxnu\n");42 }43 }44 return 0;45 }

1006---------------------------------------------------------------------------------------------------------------------------------

来相思树下

Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other)
Total Submission(s) : 32   Accepted Submission(s) : 0

Font: Times New Roman | Verdana | Georgia

Font Size: ← →

Problem Description

一群妖王排成一排站在苦情巨树下,寻找自己的转世恋人。
虽然都是妖王,但按照涂山的规定必须进行标号,标号为1的妖王排在最后面,标号为n的妖王排在最前面。每个妖王只有一个妖力值a[i]表示它们现在的地位。
妖王们是讲究实力的,当然不服比它妖力值低的居然可以排在前面,它们现在想知道在它前面,妖力值比它低,而且离它最远的距离是多少?

Input

输入n表示有n个妖王
第二行输入n个整数,表示每个妖王的妖力值a[i]
n2105
1a[i]109
(多组输入)

Output

对于每个妖王,妖力值比它低,而且离它最远的距离是多少,如果没有输出-1

Sample Input

65 50 45 7 10 1

Sample Output

4 3 2 1 0 -1对于第一个数:5,比它小的数字是1,1距离它最远,最远距离为4对于第二个数:50,比它小的数字是45 7 10 1,1距离它最远,距离为3对于第三个数:45,比它小的数字是7 10 1,1距离它最远,距离为2对于第四个数:7,比它小的数字是10 1,1距离它最远,距离为1对于第五个数:10,比它小的数字是1,1距离它最远,距离为0对于第六个数:已经没有比它小的数字了,距离为-1

Author

yinghualuowu
原题
思路:寻找右边比其小并且最远的;我们记录从右边往左边的区间最小值,一个单调递减的序列,即使r[i]=min(a[j])i<=j<=n;
我们可以二分右边的那个区间,如果右区间的r[i]<当前的数说明可以向右延伸;
下面给出AC代码:
1 #pragma comment(linker, "/STACK:1024000000,1024000000") 2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #include
11 #include
12 #include
13 #include
14 using namespace std;15 #define ll long long16 #define pi (4*atan(1.0))17 #define eps 1e-1418 #define bug(x) cout<<"bug"<
<
=1;i--)32 r[i]=min(r[i+1],a[i]);33 for(int i=1;i<=n;i++)34 {35 int st=i+1;36 int en=n,ans=-1;37 while(st<=en)38 {39 int mid=(st+en)>>1;40 if(a[i]>r[mid])41 {42 st=mid+1;43 ans=mid;44 }45 else46 en=mid-1;47 }48 if(ans==-1)49 printf("-1");50 else51 printf("%d",ans-i-1);52 printf("%c",((i==n)?'\n':' '));53 }54 }55 return 0;56 }

实在不会还有这种的(利用C++STL)

下面给出AC代码:

1 #include 
2 #include
3 #include
4 #include
5 #define MAX 200002 6 using namespace std; 7 8 int a[MAX],ans[MAX]; 9 vector
v,num;10 #define freout freopen("out.txt","w",stdout)11 #define frein freopen("in.txt","r",stdin)12 int main()13 {14 15 int n;16 while(~scanf("%d",&n)){17 for(int i=0;i
=0;i--){21 if(v.size()==0 || v.back()>=a[i]){22 v.push_back(a[i]); num.push_back(i);23 ans[i]=-1;24 }else{25 int j = (lower_bound(v.rbegin(),v.rend(),a[i]) - v.rbegin());26 // printf("%d %d\n",a[i],j);27 j = (int)v.size() - j ;28 //printf("%d %d\n",num[j+1],j);29 ans[i] = num[j] - i - 1;30 }31 }32 for(int i=0;i

 

转载于:https://www.cnblogs.com/ECJTUACM-873284962/p/6506948.html

你可能感兴趣的文章
10.23
查看>>
hdu5420 Victor and Proposition
查看>>
如何编写可移植的c/c++代码
查看>>
#pragma pack(n)
查看>>
IntelliJ IDEA 2018.3 升级功能介绍
查看>>
基于.NET平台常用的框架整理
查看>>
【每天一道算法题】Lucky String
查看>>
整合apache+tomcat+keepalived实现高可用tomcat集群
查看>>
计算几何-HPI
查看>>
香农熵学习+例子[转载]
查看>>
利用DE2上的WM8731D/A转换器产生正弦波
查看>>
清除EasyUi combotree下拉树的值
查看>>
手写RPC框架
查看>>
Hadoop 分片、分组与排序
查看>>
使用Windows8开发Metro风格应用一
查看>>
android尺子的自定义view——RulerView
查看>>
将博客搬至CSDN
查看>>
leetcode43
查看>>
直接在安装了redis的Linux机器上操作redis数据存储类型--set类型
查看>>
016——数组(十六)usort uasort uksort
查看>>