生活随笔
收集整理的這篇文章主要介紹了
第三届“传智杯”全国大学生IT技能大赛(初赛B组)【C++】
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
當時的我只會純c,打的排名真的惡心。后來學了c++才發現。
當時的題真的簡單,完全可以輕松的AK。
https://www.luogu.com.cn/contest/38793
目錄
- T160507 A - 課程報名 【模擬】
- T160508 B - 期末考試成績 【模擬】
- T160509 C - 志愿者 【排序】
- T160510 D - 終端 【模擬】
- T160513 E - 運氣 【簡單的 dfs】
T160507 A - 課程報名 【模擬】
https://www.luogu.com.cn/problem/T160507?contestId=38442
#include<cstdio>
#include<iostream>
#include<cstring>
#include<string>
using namespace std
;
int n
,v
,m
,a
;
int sum
;
int main(void)
{cin
>>n
>>v
>>m
>>a
;int temp
=v
;for(int i
=1;i
<=n
;i
++){sum
+=temp
;if(i
%m
==0) temp
+=a
;}cout
<<sum
<<endl
;return 0;
}
T160508 B - 期末考試成績 【模擬】
https://www.luogu.com.cn/problem/T160508?contestId=38442
#include<cstdio>
#include<cmath>
#include<iostream>
#include<cstring>
#include<string>
using namespace std
;
int score
;
int main(void)
{cin
>>score
;if(score
>=90) cout
<<"4.0"<<endl
;else if(score
>=60&&score
<90) printf("%.1lf\n",4.0-(90-score
)*0.1);else {int sum
=sqrt(score
)*10;if(sum
>=90) cout
<<"4.0"<<endl
;if(sum
>=60&&score
<90) printf("%.1lf\n",4.0-(90-sum
)*0.1);else cout
<<"0.0"<<endl
;}return 0;
}
T160509 C - 志愿者 【排序】
https://www.luogu.com.cn/problem/T160509?contestId=38442
#include<cstdio>
#include<algorithm>
using namespace std
;
struct student
{int id
;int t
;int k
;int sum
;
}stu
[100005];
bool cmp(student a
,student b
)
{if(a
.sum
==b
.sum
){if(a
.t
==b
.t
)return a
.id
<b
.id
;return a
.t
>b
.t
;}return a
.sum
>b
.sum
;
}
int main(void)
{int n
;int i
;scanf("%d",&n
);for(i
=0;i
<n
;i
++){scanf("%d%d",&stu
[i
].t
,&stu
[i
].k
);stu
[i
].sum
=stu
[i
].k
*stu
[i
].t
;stu
[i
].id
=i
+1;}sort(stu
,stu
+n
,cmp
);for(i
=0;i
<n
;i
++){printf("%d ",stu
[i
].id
);}printf("\n");return 0;
}
T160510 D - 終端 【模擬】
https://www.luogu.com.cn/problem/T160510?contestId=38442
#include<cstdio>
#include<iostream>
#include<string>
#include<algorithm>
#include<map>
#include<vector>using namespace std
;int n
;
string s1
,s2
,s3
;
vector
<string
> v
;
map
<string
,bool>mp
;int main(void)
{cin
>>n
;for(int i
=1;i
<=n
;i
++){cin
>>s1
;if(s1
=="touch"){cin
>>s2
;if(!mp
[s2
]) {v
.push_back(s2
);mp
[s2
]=true;}}if(s1
=="rm"){cin
>>s2
;if(mp
[s2
]){for(int i
=0;i
<v
.size();i
++){if(v
[i
]==s2
){v
.erase(v
.begin()+i
);break;}}mp
[s2
]=false;}}if(s1
=="ls"){if(v
.size())for(int i
=0;i
<v
.size();i
++) cout
<<v
[i
]<<endl
;}if(s1
=="rename"){cin
>>s2
>>s3
;if(mp
[s2
]) {for(int i
=0;i
<v
.size();i
++){if(v
[i
]==s2
){mp
[v
[i
]]=false;v
[i
]=s3
;mp
[s3
]=true;break;}} }}}return 0;
}
T160513 E - 運氣 【簡單的 dfs】
https://www.luogu.com.cn/problem/T160513?contestId=38442
#include<cstdio>
#include<iostream>
#include<cstring>
using namespace std
;
int n
,k
;
long long int ans
;
long long int sum
;
int temp
=0;
int a
[6]={1,2,3,4,5,6};
int b
[15];
int m
=1e9+7;
void dfs(int index
)
{if(index
==n
){sum
=0;for(int i
=0;i
<n
;i
++){sum
=sum
*10+b
[i
];}if(sum
%k
==0)ans
++;temp
++;return ;}for(int i
=0;i
<6;i
++){b
[index
]=a
[i
];dfs(index
+1);}
}
int main(void)
{cin
>>n
>>k
;dfs(0);cout
<<ans
%m
<<endl
;return 0;
}
總結
以上是生活随笔為你收集整理的第三届“传智杯”全国大学生IT技能大赛(初赛B组)【C++】的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。