本文主要是介绍SDU程序设计第四次月模拟,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
SDU程序设计第四次月模拟
- TT数鸭子
- 题目
- 题解
- C++代码
- ZJM要抵御宇宙射线
- 题目
- 题解
- C++代码
- 宇宙狗的危机
- 题目
- 对于这道题除了暴力,确实没想到解题方法因此附上认为比较好的一篇博客[link](https://blog.csdn.net/xKuro/article/details/106559333)题解虽有部分笔误,但看完之后茅塞顿开(真的没意识到这是一道dp2333)。
TT数鸭子
题目
题解
暴力就可以解决,采用贪心策略从最大现金开始取 不断进行 整除和取模操作
C++代码
#include<iostream>using namespace std;long long ai;
int n,k,ret=0;
int num[15];bool jud(long long x){for(int i=0;i<10;i++) num[i] = 0;if(x==0) num[0]++;while(x){num[x%10]++;x/=10;}int tmp = 0;for(int i=0;i<10;i++){if(num[i] != 0) tmp++;}if(tmp<k) return true;return false;
}
int main(){cin>>n>>k;for(int i=0;i<n;i++){cin>>ai;if(jud(ai)) ret++; }cout<<ret<<endl;return 0;
}
ZJM要抵御宇宙射线
题目
题解
1.只考虑罩子最小也就是找图中某个点他能到的最远距离是最小的
2.考虑同距离 只需要依次判断两个中心点的x 和 y
PS:如果将点排序后遍历可以做到不进行比较比如后面的x y一定依次小于前面的x y
C++代码
#include<iostream>
#include<stdio.h>
using namespace std;
const int maxn = 1e3+10;
int x[maxn],y[maxn];
int n;
long long mi = 1e11;
long long mx = -1;
int ansx,ansy;int main(){int a,b;cin>>n;for(int i=0;i<n;i++){cin>>x[i]>>y[i];}//最大的最小 for(int i=0;i<n;i++){for(int j=0;j<n;j++){if(i==j) continue;int dx = x[i]-x[j];int dy = y[i]-y[j];if(dx*dx+dy*dy > mx)mx = dx*dx+dy*dy;}if(mx < mi){ansx = x[i],ansy = y[i],mi = mx;}else if(mx == mi){if(ansx < x[i] || (ansx == x[i] && ansx > y[i])) ansx = x[i],ansy = y[i];}}printf("%.2lf %.2lf \n%.2lf",(float)ansx,(float)ansy,(float)mi);return 0;
}
宇宙狗的危机
题目
对于这道题除了暴力,确实没想到解题方法因此附上认为比较好的一篇博客link题解虽有部分笔误,但看完之后茅塞顿开(真的没意识到这是一道dp2333)。
这篇关于SDU程序设计第四次月模拟的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!