int main() { for(int i=0;i<=9;i++) cnt[i]=2021; int i; for(i=1;;i++){ int t=i; while(t){ if(cnt[t%10]==0){ cout<<i-1; return 0; } cnt[t%10]--; t/=10; } } return 0; }
题目问的是能拼到哪里,所以结果要减一,答案是:3181。(内心毫无波动)
#include<iostream> #include<cmath> #include<set> using namespace std; struct node
{ int x,y; }p[1000]; struct line
{ int a,b,c; bool operator<(const line &p) const { if (a == p.a) return b == p.b ? c < p.c : b < p.b; return a < p.a; } bool operator==(const line &p) const { return a == p.a && b == p.b && c == p.c; } }; int cnt; set<line> se; int gcd(int a,int b)
{ return b==0?a:gcd(b,a%b); } int gcdd(int a,int b,int c)
{ return gcd(gcd(a,b),gcd(b,c)); } int main() { int n=20,m=21; for(int i=0;i<n;i++) for(int j=0;j<m;j++) p[++cnt]={i,j}; for(int i=1;i<=cnt;i++){ for(int j=i+1;j<=cnt;j++){ int a=p[i].y-p[j].y; int b=p[j].x-p[i].x; int c=p[i].y * (p[i].x-p[j].x)- p[i].x *(p[i].y-p[j].y); int t=gcdd(fabs(a),fabs(b),fabs(c)); se.insert({a/t,b/t,c/t}); }
} cout<<se.size(); return 0; }
结果是40257.(比赛时花了很长时间,结果还是错的)
#include<iostream> #include<algorithm> using namespace std; typedef long long LL; LL yue[101000],cnt;
#include<iostream> #include<algorithm> #include<cstring> #include<cmath> using namespace std; const int N=2510; int g[N][N],dist[N],st[N]; int n=2021; int gcd(int a, int b) { return b ? gcd(b, a % b) : a; } int lcm(int a,int b){ return a*b/gcd(a,b); } int dijkstra(){ memset(dist,0x3f,sizeof dist); dist[1]=0;
一字节等于8位,1MB=220B,答案为:256*2^20/4=67108864。考试的时候完全没想到,gg!!! #include <iostream> using namespace std; int cnt[15]; int main() { for(int i=0;i<=9;i++) cnt[i]=2021; int i; for(i=1;;i++){ int t=i; ...