SDU程序設計第四次月模擬

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)。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章