SRM 524 div2
4023 단어 div
처음엔 반응이 안 나왔어.폭력, 두 수를 매거하다.
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <string.h>
#include <cmath>
using namespace std;
class ShippingCubes
{
public:
int minimalCost(int N)
{
int mins=2000000000;
for(int i=1;i<=N;i++)
{
for(int j=1;j<=N;j++)
{
if(N%(i*j)==0)
{
int k=N/(i*j);
if((i+j+k)<mins)
mins=(i+j+k);
}
}
}
return mins;
}
};
500pt
소수라면 두 번만 하면 돼, 1,p-1
소수가 아니라면 한 번만 하면 되는데,
특판 1, 2, 3.
많은 분들이 3이라는 특이한 수를 빠뜨리셨어요.
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <string.h>
#include <cmath>
using namespace std;
class MagicDiamonds
{
public:
long long minimalTransfer(long long n)
{
long long t = (int)sqrt((double)n);
t = t+1;
if(n==1)
return 1;
if(n==2)
return 2;
if(n==3)
return 3;
for(long long i=2;i<=t;i++)
{
if(n%i==0)
return 1;
}
return 2;
}
};
1000pt.
시합 후에야 만들어진 것으로 큰 소의 코드를 참고했다.우선 선택할 수 있는 수를 일정한 순서에 따라 배열하다.작은 것부터 큰 것까지 매거에 주의하다.
여기서 좀 특별한 조건이 하나 있는데한 쌍의 N을 남기면 한 번만 확장하면 된다.왜냐하면 대열 앞에 하나가 있으면...
개수가 N에 대한 나머지가 같으면 현재 이 수는 대열에 들어갈 필요가 없다. 왜냐하면 앞의 그 수는 반드시 현재의 이 수보다 작기 때문이다.
#include <iostream>
#include <cstdio>
#include <algorithm>
#include <vector>
#include <string>
#include <cmath>
#include <queue>
using namespace std;
struct node
{
string out;
int res;
};
queue<node>q;
int used[10005];
string My_Format(string str)
{
int num=str.length();
if(num<9)
return str;
string ans="";
ans+=str[0];
ans+=str[1];
ans+=str[2];
ans+="...";
ans+=str[num-3];
ans+=str[num-2];
ans+=str[num-1];
ans+="(";
//ans+=char(num+'0');
string strnum="";
while(num>0)
{
strnum+=(char)(num%10+'0');
num/=10;
}
for(int i=strnum.length()-1;i>=0;i--)
ans+=strnum[i];
ans+=" ";
ans+="digits";
ans+=")";
return ans;
}
class MultiplesWithLimit
{
public:
string minMultiples(int N, vector<int> b)
{
vector<int>a;
a.clear();
for(int i=0;i<10;i++)
{
int ok=1;
for(int j=0;j<b.size();j++)
{
if(b[j]==i)
{
ok=0;
break;
}
}
if(ok==1)
a.push_back(i);
}
int num=a.size();
memset(used,0,sizeof(used));
sort(a.begin(),a.end());
while(q.size()>0)
q.pop();
node temp,next;
for(int i=0;i<num;i++)
{
if(a[i]==0)
continue;
temp.out='0'+a[i];
temp.res=a[i]%N;
if(temp.res==0)
return My_Format(temp.out);
if(used[temp.res]==0)
q.push(temp);
used[temp.res]=1;
}
while(q.size()>0)
{
temp = q.front();
q.pop();
if(temp.res==0)
return My_Format(temp.out);
for(int i=0;i<num;i++)
{
next.out=temp.out+char(a[i]+'0');
next.res=(temp.res*10+a[i])%N;
if(used[next.res]==0)
q.push(next);
used[next.res]=1;
}
}
return "IMPOSSIBLE";
}
};
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
🧙🏼 HTML 구조를 나타내는 요소: 컨텐츠 분할 요소 : 블록 레벨 요소 : 플로우 콘텐츠를 위한 통용 컨테이너 (순수 컨테이너로서 아무것도 표현안함) : 인라인 컨테이너 : 인라인 레벨 요소 🌵 span (인라인 요소) vs div(블록 요소) ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.