博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Jxnu Group Programming Ladder Tournament 2017题解
阅读量:4557 次
发布时间:2019-06-08

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

L1-1 这是一道简单题

题解:直接循环输出就好了

1 #include 
2 using namespace std;3 int main(){4 cin.sync_with_stdio(false);5 for(int i=0;i<3;i++){6 cout<<"DaHaoGeJiuShiYiGeRuoJi"<

L1-2 叶神的字符串

题解:查找YS的字符片段,查到了就把它置为空格,遍历完了一遍以后,最后在查找有没有不是空格但是前后相同的转发片段

1 #include 
2 #include
3 using namespace std; 4 int main(){ 5 string s; 6 while(cin>>s) 7 { 8 int cnt=0; 9 for(int i=0;i

L1-3 成绩排名

题解:直接进行结构体排序就好了,处理下相同的分数的排名情况

1 #include 
2 #include
3 #define N 1010 4 using namespace std; 5 struct node{ 6     int id; 7     int grade[N]; 8     int sum; 9     string name;10 }student[N];11 bool cmp(node a,node b){12     if(a.sum==b.sum){13         return a.id
b.sum;16 }17 int main(){18     int n,m,num;19     cin.sync_with_stdio(false);20     while(cin>>n>>m){21         for(int i=0;i
>student[i].id>>student[i].name;23             student[i].sum=0;24             for(int j=0;j
>student[i].grade[j];26                 student[i].sum+=student[i].grade[j];27             }28         }29         sort(student,student+n,cmp);30         for(int i=0;i

L1-4 王胖子买零食

题解:贪心,每次拿最便宜的

1 #include 
2 #include
3 #define N 1010 4 using namespace std; 5 struct node{ 6     int w,m; 7 }thing[N]; 8 bool cmp(node a,node b){ 9     return a.m
=thing[i].w*thing[i].m){22                 sum+=thing[i].w;23                 n-=(thing[i].w*thing[i].m);24             }25             else{26                 sum+=(n*1.0/thing[i].m);27                 n=0;28             }29             if(n==0){30                 break;31             }32         }33         printf("%.4lf\n",sum);34     }35     return 0;36 }

L1-5 Dada的游戏

题解:遍历整个区间当后一个比前一个大的话就让一个计数器++;当后一个比前一个小的时候,把计数器的值和最大值进行比较并且把计数器置为1,再向后面遍历(PS:因为要连续的所以既然后一个比前一个小,当然就直接从当前去找就好了,回去的话肯定没有有现在最大值的大,所以把i置为j的值)

1 #include
2 #include
3 4 using namespace std; 5 6 int main() 7 { 8 int n; 9 int num[100005];10 while(~scanf("%d",&n))11 {12 for(int i = 0; i < n; i++)13 scanf("%d",&num[i]);14 int maxx=0,i,j;15 for(i = 0; i < n-maxx; )16 {17 int temp=1;18 for(j = i+1; j < n; j++)19 {20 if(num[j]>num[j-1])21 temp++;22 else23 break;24 }25 if(temp>maxx)26 maxx=temp;27 i=j;//这里要优化要不会超时28 }29 printf("%d\n",maxx);30 }31 return 0;32 }

L1-6 

吐槽:一道裸的map的题,后面考虑有人不会stl的map,所以数据开小了直接用数组映射就好了。

题解:把每层的砖块之间的缝的位置算出来放入map中,如果map里原本有的话就在那个值上++,如果没有就在map里新加入一个值为1,最后找map里值最多的,就说明打的洞就是最少的。

1 #include 
2 #include
3 #include
4 #include
5 using namespace std; 6 int main(){ 7 //freopen("in.txt","r",stdin); 8 //freopen("out.txt","w",stdout); 9 int n,k;10 11 while(scanf("%d",&n)!=EOF)12 {13 map
mp;14 for(int i=0;i
::iterator it;30 int maxGaps=0;31 for(it=mp.begin();it!=mp.end();it++)32 if(maxGaps
second)33 maxGaps=it->second;34 printf("%d\n",n-maxGaps);35 }36 return 0;37 }

L2-1 N!

题解:有两种办法,一个是用c++的高精度来写,第二种是用long long int去存乘积,但是不要全部都存,把计算过程中所有的因子10提取出来(PS:sum只存去除后缀0的数),就是说例如如果遇到了5,就把sum除以2,把标志末尾有多少个0的计数器++,最后吧sum输出,在循环输出全部的0。 

1 #include 
2 #include
3 #include
4 #include
5 #define LL long long int 6 using namespace std; 7 8 int main(){ 9 //freopen("in.txt","r",stdin);10 //freopen("out.txt","w",stdout);11 LL n;12 while(cin>>n)13 {14 LL pre=1;15 string s="";16 for(int i=2;i<=n;i++)17 {18 int x=i;19 while(x%5==0)20 {21 if(x%2==0)22 x/=2;23 else24 pre/=2;25 x/=5;26 s+='0';27 }28 pre*=x;29 }30 cout<
<<

L2-2 日天的终生大事

题解:

这道题目可以从递推的角度来分析,

对于任何一个L位K进制数,可以由一个L-1位K进制数(这里考虑前导0,因为无论多少前导0,都可以在首部加入非0数字使其合法)在首部加上一个数组合而成。

所以构建递推状态dp[i][j]//表示i位,首部为数字j的数的种类。那么可以推导公式:dp[i][j]=dp[i-1][x]-dp[i-1][j-1]-dp[i-1][j+1] (0<=x<k),此处dp[i-1][x]为x各种取值下的求和。计算完后还得按题目要求去除数字和它相邻的情况。
最后对L位以1~k-1的状态求和即可。
代码还需要处理几个点:
1、做减法后可能为负数,要处理成正数。
2、左右不一定都存在数字,要根据j判断。
3、用循环求和会多出k的复杂度,因为在先前以及依次求出了dp[i-1][x],所以用sum累计一下,直接就可以在求解dp[i][j]时使用。
4、虽然对于大部分数,不能有前导0,所以最后求和时,不考虑dp[L][0],但是对于位数为1时,需要累计dp[1][0]。

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #define LL long long int 7 using namespace std; 8 LL dp[1005][1005]; 9 const LL mod=1000000007LL;10 int main(){11 12 //freopen("in.txt","r",stdin);13 cin.sync_with_stdio(false);14 LL k,l;15 while(cin>>k>>l)16 {17 LL sum=0;18 for(int i=0;i

 

2017-05-02 20:44:07

转载于:https://www.cnblogs.com/xjh-shin/articles/6798467.html

你可能感兴趣的文章
数据库事务
查看>>
xe7 控件升级
查看>>
TFrame bug
查看>>
刚学习的如何才能自信的拍美美的婚纱照呢(要结婚啦)
查看>>
M51文件注释
查看>>
关于临界资源访问互斥量的死锁问题
查看>>
django-view层
查看>>
异步加载JS的方法。
查看>>
golang-gorm框架支持mysql json类型
查看>>
【tool】白盒测试
查看>>
图论其一:图的存储
查看>>
20180923-WebService
查看>>
z变换
查看>>
Python - 静态函数(staticmethod), 类函数(classmethod), 成员函数
查看>>
Spring基础2
查看>>
【灵异短篇】这个夜晚有点凉
查看>>
一点小问题
查看>>
pytest 10 skip跳过测试用例
查看>>
MVC身份验证及权限管理
查看>>
It was not possible to find any compatible framework version
查看>>