2017 Multi-University Training Contest
来源:互联网 发布:淘宝清库存 编辑:程序博客网 时间:2024/06/05 18:14
1001:Add More Zero
题目大意:求满足10^k<=2^m的最大的K。
#include<iostream>#include<cstdio>#include<cmath>#include<algorithm>using namespace std;int main(){int m,cas=0;while(~scanf("%d",&m)){printf("Case #%d: %d\n",++cas,(int)(m*log(2)/log(10)));}return 0;}
1002:Balala Power!
题目大意:将若干只包含小写字母的字符串转换成26进制的数,输出这些字符串转换之后和最大的十进制数。
#include<iostream>#include<cstdio>#include<cstring>#include<string>#include<algorithm>using namespace std;#define ll long longconst int maxn=1e5+10;const int mod=1e9+7;struct node{ int num[maxn]; int id; bool operator<(const node &r)const { for(int i=100000; i>=0; i--) { if(num[i]!=r.num[i]) return num[i]>r.num[i]; } return 0; }} a[28];bool vis[28];ll num[28],res[maxn];string s[maxn];int main(){ int n,cas=0; res[0]=1; for(int i=1; i<maxn; i++) { res[i]=res[i-1]*26; res[i]%=mod; } while(~scanf("%d",&n)) { for(int i=0;i<26;i++){for(int j=0;j<=100000;j++)a[i].num[j]=0;a[i].id=i;vis[i]=0;} for(int i=0; i<n; i++) { cin>>s[i]; int l=s[i].size(); for(int j=0,k=l-1; j<l; j++,k--) { int t=s[i][k]-'a'; a[t].num[j]++; } if(l>1) vis[s[i][0]-'a']=1; } for(int i=0;i<26;i++){for(int j=0;j<100000;j++){a[i].num[j+1]+=a[i].num[j]/26;a[i].num[j]%26;}}sort(a,a+26);for(int i=25;i>=0;i--) num[a[25-i].id]=i;int t=25;while(vis[a[t].id]&&t){swap(num[a[t].id],num[a[t-1].id]);t--;}ll ans=0;for(int i=0;i<n;i++){int l=s[i].size();for(int j=0;j<l;j++){ans=(ans+num[s[i][j]-'a']*res[l-1-j]%mod)%mod;}}printf("Case #%d: %d\n",++cas,ans); } return 0;}
1008:Hints of sd0061
题目大意:用参数以及所给出函数生成n个数,然后,求排好序后的 n个数中,m 次查询,第 i 的数的值
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>using namespace std;const int maxn=1e7+10;int a[110],id[110];unsigned s[maxn];unsigned ans[110];int n,m;unsigned x,y,z;unsigned func(){unsigned t;x ^= x << 16;x ^= x >> 5;x ^= x << 1;t = x;x = y;y = z;z = t ^ x ^ y;return z;}bool cmp(int x,int y){return a[x]<a[y];}int main(){int cas=0;while(~scanf("%d%d%d%d%d",&n,&m,&x,&y,&z)){for(int i=0;i<m;i++) scanf("%d",&a[i]),id[i]=i;a[m]=n,id[m]=m;for(int i=0;i<n;i++) s[i]=func();sort(id,id+m,cmp);for(int now,i=m-1,last=a[id[m]];i>=0;i--,last=now){now=a[id[i]];if(now==last) ans[id[i]]=s[now];else{nth_element(s,s+now,s+last);ans[id[i]]=s[now];}}printf("Case #%d:",++cas);for(int i=0;i<m;i++) printf(" %u",ans[i]);printf("\n");} return 0;}
1011:KazaQ's Socks
题目大意:KazaQ有n双袜子,标号1到n放在柜子里,每天早上起床穿袜子选标号最小的一双。然后晚上回来将穿过的扔到篮子里。当篮子里的袜子数量为n-1的时候,就把这些袜子洗一下,第二天晚上再放回柜子里。问KazaQ在第K天穿的是哪一个标号的袜子。
#include<iostream>#include<cstdio>using namespace std;#define ll long longint main(){int n,cas=0;ll k;while(~scanf("%d%lld",&n,&k)){printf("Case #%d: ",++cas);if(k<=n) printf("%lld\n",k);else{k-=n;int t=k/(n-1);if(k%(n-1)==0){if(t&1) printf("%d\n",n-1);else printf("%d\n",n);}else printf("%lld\n",k%(n-1));}}return 0;}
阅读全文
0 0
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- #2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- #2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- 2017 Multi-University Training Contest
- subset
- Python 字符串操作方法大全
- 解析json数据
- 人生第一篇博客,写在这里
- CSU
- 2017 Multi-University Training Contest
- A
- python高阶函数中的map、filter、reduce
- 【Machine Learning】笔记:Logistic Regression Model
- html编辑器
- 百度鹰眼地图使用
- OpenGL ES/Open CV/OpenGL、OpenCL与OpenAL研究
- Android性能优化之布局优化(一)
- 开发中常用的app神器