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)。