The 2019 University of Jordan Collegiate Programming Contest
Posted wrjlinkkkkkk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了The 2019 University of Jordan Collegiate Programming Contest相关的知识,希望对你有一定的参考价值。
链接:https://codeforc.es/gym/102267
A. Picky Eater
直接比较
int main() int x ,y; scanf("%d %d" ,&x ,&y); if(x>=y) return printf("1"),0; else return printf("0"),0; return 0;
B. Primes
素数筛,log判断
int prime[maxn],num_prime = 0; int vis[maxn]; void is_prime(int N) for(int i=2;i<=N;i++) if(!vis[i]) prime[num_prime++] = i; vis[i] = i; for(int j=0;j<num_prime&&i*prime[j]<=N;j++) vis[i*prime[j]] = prime[j]; if(!(i%prime[j])) break; return; int n; int main() scanf("%d", &n); is_prime(n); for(int i = 0; i < num_prime; i++) int j = prime[i]; int p = lower_bound(prime,prime+num_prime,n-j)-prime; if(prime[p]==n-j) return printf("%d %d",j,n-j),0; printf("-1"); return 0;
C. Matryoshka Dolls
一个循环
int x,y; int main() scanf("%d %d", &x, &y); int ans = 0; while(x) ans++; x/=y; printf("%d",ans); return 0;
D. Robots Easy
12*12,直接rand乱跑
#include<iostream> #include<cstdio> #include<algorithm> //#include<cmath> #include<cstring> #include<string> #include<stack> #include<queue> #include<deque> #include<set> #include<vector> #include<map> #define fst first #define sc second #define pb push_back #define mem(a,b) memset(a,b,sizeof(a)) #define lson l,mid,root<<1 #define rson mid+1,r,root<<1|1 #define lc root<<1 #define rc root<<1|1 using namespace std; typedef double db; typedef long double ldb; typedef long long ll; typedef unsigned long long ull; typedef pair<int,int> PI; typedef pair<ll,ll> PLL; const db eps = 1e-6; const int mod = 998244353; const int maxn = 2e6+100; const int maxm = 2e6+100; const int inf = 0x3f3f3f3f; const ll INF = 0x3f3f3f3f3f3f3f3f; //const db pi = acos(-1.0); int x,y; int a[111][111]; vector<char>ans; int dx,dy; inline int Rand() static int seed = 2333; return seed = (int)((((seed ^ 998244353) + 19260817ll) * 19890604ll) % 1000000007); int main() int t; scanf("%d", &t); a[6][6]=a[6][7]=a[7][6]=a[7][7]=1; a[9][2]=a[9][3]=a[10][2]=1; a[9][10]=a[9][11]=a[10][11]=1; a[3][3]=a[3][10]=a[10][3]=a[10][10]=2; while(t--) ans.clear(); scanf("%d %d" ,&x ,&y); while(a[x][y]!=2) //printf("%d %d\n",x,y); int op; while(op=rand()%5) dx=dy=0; char ch; if(op==1)dx=-1;ch=‘U‘; if(op==2)dx=1;ch=‘D‘; if(op==3)dy=-1;ch=‘L‘; if(op==4)dy=1;ch=‘R‘; if(op==0)continue; //printf(" %d\n",op); if(x+dx>=1&&x+dx<=12&&y+dy>=1&&y+dy<=12) if(a[x+dx][y+dy]==1)continue; x+=dx;y+=dy; ans.pb(ch); break; else continue; printf("%d\n",ans.size()); for(int i = 0; i < (int)ans.size(); i++) printf("%c",ans[i]); printf("\n"); return 0;
H. Circle of Polygon
一个公式
double v,s; int main() scanf("%lf %lf", &v, &s); printf("%.9lf",1.0/2.0*pi*s*s/(1.0-cos(2*pi/v))); return 0;
I. Ultimate Army
左括号之后一定跟一个数,遇到左括号,下一个数的sup就是栈顶,遇到数字入栈,遇到右括号出栈
int n; char a[maxn]; stack<int>s; vector<int>v; int ans[maxn]; int main() scanf("%d", &n); scanf("%s",a+1); int len = strlen(a+1); int tmp = 0; int gao = 0; for(int i = 1; i <= len; i++) if(a[i]>=‘0‘&&a[i]<=‘9‘) tmp*=10; tmp+=a[i]-‘0‘; else if(tmp!=0)v.pb(tmp); tmp=0; if(a[i]==‘(‘)v.pb(-1); else if(a[i]==‘)‘)v.pb(-2); for(int i = 0; i < (int)v.size(); i++) if(v[i]>0) if(gao)ans[v[i]]=s.top(); s.push(v[i]); gao=0; else if(v[i]==-1) gao=1; else if(v[i]==-2) s.pop(); for(int i = 1; i <= n; i++) printf("%d ",ans[i]); return 0;
K. Birthday Puzzle
2^20暴力dfs维护答案即可
ll ans; int n; int a[maxn]; void dfs(int x, int now) if(x==n+1) ans+=now; return; dfs(x+1,now|a[x]); dfs(x+1,now); int main() scanf("%d", &n); for(int i = 1; i <= n; i++) scanf("%d", &a[i]); dfs(1,0); printf("%lld",ans); return 0;
以上是关于The 2019 University of Jordan Collegiate Programming Contest的主要内容,如果未能解决你的问题,请参考以下文章
2019 Multi-University Training Contest 4.Divide the Stones(贪心)
2019 Multi-University Training Contest 3 Find the answer (离散化+二分+树状数组)
ICBC Founded its “Spark School of ICBC University”
Autism Course of Yale University Fred Volkman 2