第十五届北京师范大学程序设计竞赛现场决赛题解&源码(A.思维,C,模拟,水,坑,E,几何,思维,K,字符串处理)

简介: 1 #include 2 using namespace std; 3 int main() 4 { 5 int T,n,a,b; 6 while(cin>>T) 7 { 8 while(T--) 9 ...

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 int main()
 4 {
 5     int T,n,a,b;
 6     while(cin>>T)
 7     {
 8         while(T--)
 9         {
10             cin>>n;
11             int ans=1e+6;
12             for(int i=1;i<=n-1;i++)
13             {
14                 cin>>a>>b;
15                 ans=min(ans,a+b);
16             }
17             cout<<ans<<endl;
18         }
19     }
20     return 0;
21 }

 

C. Captcha Cracker
题目大意:给一个字符串,识别出0,2,4,6,9以及英文单词并
按照出现顺序输出。
通过人数/提交人数:60/62
题目解法:直接模拟。

连续两题是因为被卡时卡挂的,精明的出题人,只能说我自己没注意一个细节,然后刚好被出题人卡到这个点,TL.....

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 char s[100010];
 4 int main()
 5 {
 6     int n;
 7     scanf("%d",&n);
 8         while(n--)
 9         {
10             scanf("%s",s);
11             int len=strlen(s);
12             for(int i=0;i<len;i++)
13             {
14                 if(s[i]=='0')
15                     printf("0");
16                 else if(s[i]=='2')
17                     printf("2");
18                 else if(s[i]=='4')
19                     printf("4");
20                 else if(s[i]=='6')
21                     printf("6");
22                 else if(s[i]=='9')
23                     printf("9");
24                 else if(s[i]=='z'&&s[i+1]=='e'&&s[i+2]=='r'&&s[i+3]=='o')
25                     printf("0");
26                 else if(s[i]=='t'&&s[i+1]=='w'&&s[i+2]=='o')
27                     printf("2");
28                 else if(s[i]=='f'&&s[i+1]=='o'&&s[i+2]=='u'&&s[i+3]=='r')
29                     printf("4");
30                 else if(s[i]=='s'&&s[i+1]=='i'&&s[i+2]=='x')
31                     printf("6");
32                 else if(s[i]=='n'&&s[i+1]=='i'&&s[i+2]=='n'&&s[i+3]=='e')
33                     printf("9");
34             }
35             printf("\n");
36         }
37     return 0;
38 }

 

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const double pi=acos(-1.0);
 4 int main()
 5 {
 6     int n;
 7     int a[4];
 8     scanf("%d",&n);
 9     while(n--)
10     {
11         for(int i=0;i<3;i++)
12             scanf("%d",&a[i]);
13             sort(a,a+3);
14         printf("%.12lf\n",pi*(pow(a[1],2)+pow((a[2]-a[1]),2)));
15     }
16     return 0;
17 }

 

F. Find Quailty
题目大意:给一个凸多边形,求出从不在多边形内一点𝑄出
发走不超过𝑈距离且不进入多边形内部所能到的区域面积。
通过人数/提交人数:0/3
题目解法:圆面积减去圆和凸多边形交的面积是显然不对的。

如果𝑄不在边界上,过𝑄作两条凸包的切线,那么区域被分为
两部分,其中一部分如下图所示,只需要计算圆和简单多边
形的交,这是个经典的几何模板题。

另一部分面积首先是个大扇形,然后沿着凸多边形的边界从
两侧爬到另一边会得到很多小扇形。

𝑈值足够大的时候会有一些扇形发生相交,需要减去相交部
分的面积

由于从任意一侧爬过去的途中得到的若干小扇形是两两交为
空的,那么两侧小扇形各自并集的交集就是从两侧小扇形任
取两个的交集的并集,于是减去从两侧分别枚举一个小扇形
求交的结果,再减去两侧小扇形与大扇形求交的结果即可。
复杂度是O(n^2).

 

 

 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 #define N 100010
 4 unordered_map<string,int> mp;
 5 int n;
 6 bool vis[N];
 7 int main()
 8 {
 9     int T;
10     scanf("%d",&T);
11     while(T--)
12     {
13         memset(vis,0,sizeof(vis));
14         scanf("%d",&n);
15         char opt[5];string name;
16         int x,last=0;
17         mp.clear();
18         int ans=0,cnt=0;
19         while(n--)
20         {
21             scanf("%s",opt);
22             cin>>name;
23             if(opt[0]=='i') mp[name]=++cnt;
24             else
25             {
26                 x=mp[name];
27                 vis[x]=true;
28                 if(x==last+1) ans++;
29                 while(vis[last+1]) ++last;
30             }
31         }
32         printf("%d\n",ans);
33     }
34     return 0;
35 }

 

目录
相关文章
|
存储 数据采集 编解码
电子设计大赛-仪器仪表类题目分析
电子设计大赛-仪器仪表类题目分析
125 0
电子设计大赛-仪器仪表类题目分析
|
存储 算法 芯片
电子设计大赛-信号源类题目分析
电子设计大赛-信号源类题目分析
173 0
电子设计大赛-信号源类题目分析
牛客小白月赛37 G.零一奇迹(思维 枚举)
牛客小白月赛37 G.零一奇迹(思维 枚举)
124 0
牛客小白月赛37 G.零一奇迹(思维 枚举)
蓝桥杯历届试题 蚂蚁感冒(模拟版+非模拟版)
长100厘米的细长直杆子上有n只蚂蚁。它们的头有的朝左,有的朝右。   每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒。   当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行。   这些蚂蚁中,有1只蚂蚁感冒了。并且在和其它蚂蚁碰面时,会把感冒传染给碰到的蚂蚁。   请你计算,当所有蚂蚁都爬离杆子时,有多少只蚂蚁患上了感冒。 输入格式   第一行输入一个整数n (1 < n < 50), 表示蚂蚁的总数。   接着的一行是n个用空格分开的整数 Xi (-100< Xi < 100), Xi的绝对值, 表示蚂蚁离开杆子左边端点的距离。正值表示头朝右,负值表示头朝左, 数据中不会出现0值,也不会出
195 1
蓝桥杯历届试题 蚂蚁感冒(模拟版+非模拟版)
|
算法
团体程序设计天梯赛-模拟赛(下)
团体程序设计天梯赛-模拟赛(下)
456 0
团体程序设计天梯赛-模拟赛(下)
|
机器学习/深度学习 程序员 Python
团体程序设计天梯赛-模拟赛(上)
团体程序设计天梯赛-模拟赛
688 0
团体程序设计天梯赛-模拟赛(上)
|
机器学习/深度学习 存储 缓存
蓝桥杯十大常见天阶功法——音之呼吸.肆之型.模拟
蓝桥杯十大常见天阶功法——音之呼吸.肆之型.模拟
144 0
蓝桥杯十大常见天阶功法——音之呼吸.肆之型.模拟
PTA团体程序设计天梯赛-练习集 L2 网红点打卡攻略(模拟)
PTA团体程序设计天梯赛-练习集 L2 网红点打卡攻略(模拟)
163 0
|
算法 编译器 测试技术
一位嵌入式工程师,硬核单片机编程思想
没有思想的裸程序就如一副人体骨架,有个人形,但没有人样,骨骼之间的关节都是靠胶水或拉线连接起来的,生硬而呆板。如果给骨架包上皮肉,加上灵魂,我们就会惊叹:啊!这是帅哥,这是美女!因为骨架活了。
193 1
一位嵌入式工程师,硬核单片机编程思想
【蓝桥真题3】蓝桥改革变难,想进国赛这些能力你可缺一不可(下)
【蓝桥真题3】蓝桥改革变难,想进国赛这些能力你可缺一不可
226 0
【蓝桥真题3】蓝桥改革变难,想进国赛这些能力你可缺一不可(下)
下一篇
无影云桌面