Contest1036 - 2017西安电子科技大学程序设计新生赛网络预选赛
一名大三older 希望能帮助大一萌新。。。加油 xiandianer!!!!;
xdoj 1260 (B) 水题 用了一下STL (好长啊。。。)
- #include<iostream>
- #include<cstdio>
- #include<algorithm>
- #include<map>
- using namespace std;
- const int N=;
- struct T{
- string suj;
- double p;
- bool operator <(const T& b) const {
- return suj<b.suj;
- }
- };
- map <T,int> mapp;
- int n;
- double f (int x) {
- if (x<=) return 0.0;
- if (x<=) return 1.0;
- if (x<=) return 1.5;
- if (x<=) return 1.7;
- if (x<=) return 2.0;
- if (x<=) return 2.3;
- if (x<=) return 2.7;
- if (x<=) return 3.0;
- if (x<=) return 3.3;
- if (x<=) return 3.7;
- return 4.0;
- }
- int main ()
- {
- cin>>n;
- map<T,int>::iterator it;
- for (int i=;i<=n;i++) {
- T temp;
- int w;
- cin>>temp.suj>>temp.p>>w;
- if (mapp[temp]<w)
- mapp[temp]=w;
- }
- it=mapp.begin();
- double sum=0.0;
- double k=0.0;
- double nn=0.0;
- while (it!=mapp.end()) {
- sum+=(it->first.p)*(it->second);
- k+=(it->first.p)*f(it->second);
- nn+=it->first.p;
- it++;
- }
- printf ("%.1lf\n%.2lf\n",sum/nn,k/nn);
- return ;
- }
xdoj 1255 (C) 水题 不明白为什么不加getchar() 会GG;
- #include<iostream>
- #include<cstdio>
- #include<string>
- using namespace std;
- char* str="0123456789ABCDEF";
- int main ()
- {
- int x,y,z;
- while (~scanf("(%d, %d, %d)",&x,&y,&z)) {
- char s[];
- s[]=str[x/];
- s[]=str[x%];
- s[]=str[y/];
- s[]=str[y%];
- s[]=str[z/];
- s[]=str[z%];
- s[]='\0';
- cout<<"#"<<s<<endl;
- getchar();
- }
- return ;
- }
xdoj 1265(D) 取余找循环节呗。
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #include<algorithm>
- using namespace std;
- const int N=;
- int mod=;
- struct T {
- int a;
- int b;
- };
- T t[N];
- int p[N];
- int A,B,C;
- int n,k;
- int mycmp (T aa,T bb) {
- return aa.a>bb.a;
- }
- int main ()
- {
- int nn;
- scanf ("%d",&nn);
- while (nn--) {
- scanf ("%d %d %d",&A,&B,&C);
- memset (p,,sizeof(p));
- int i=;
- t[].a=A;
- p[A]=;
- while () {
- t[i+].a=(t[i].a*B+C)%mod;
- if (p[t[i+].a])
- break;
- else
- p[t[i+].a]=i+;
- i++;
- }
- int x1=p[t[i+].a];
- int x2=i;
- int num=x2-x1+;
- scanf ("%d %d",&n,&k);
- int times=(n-x1+)/num;
- for (i=;i<=x2;i++) {
- if (i<x1) t[i].b=;
- else if (i<=x1+(n-x1+)%num)
- t[i].b=times+;
- else
- t[i].b=times;
- }
- sort (t+,t++x2,mycmp);
- i=;
- while () {
- if (p[t[i].a]>n) {i++; continue;}
- if (k-t[i].b<=) break;
- else k-=t[i].b;
- i++;
- }
- printf ("%d\n",t[i].a);
- }
- return ;
- }
xdoj 1262(E) 找A前后Q数目相乘
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- using namespace std;
- typedef long long LL;
- const int N=1e5+;
- char str[N];
- int main ()
- {
- scanf ("%s",str);
- int len=strlen(str);
- LL n1=;
- for (int i=;i<len;i++) {
- if (str[i]=='Q')
- n1++;
- }
- LL n2=;
- LL sum=;
- for (int i=;i<len;i++) {
- if (str[i]=='Q')
- n2++;
- if (str[i]=='A')
- sum+=n2*(n1-n2);
- }
- printf ("%lld\n",sum);
- return ;
- }
xdoj 1264(F) 找一下规律 发现数据按照二进制递增的
- #include<cstdio>
- #include<cstring>
- #include<iostream>
- using namespace std;
- typedef long long LL;
- bool a[];
- int main ()
- {
- LL n;
- while (~scanf ("%lld",&n)) {
- memset (a,,sizeof(a));
- int i=;
- while (n) {
- if (n&) a[i]=;
- n=n>>;
- i++;
- }
- for (int i=;i>=;i--) {
- if (a[i])
- printf ("R");
- else
- printf ("G");
- }
- printf ("\n");
- }
- return ;
- }
xdoj 1261(G) 开始用图做的 GG了最后用的并查集
- #include<cstdio>
- #include<cstring>
- #include<iostream>
- using namespace std;
- const int N=1e6+;
- int p[N];
- int f[N];
- int n,m;
- int _find(int x) {
- if (x!=f[x])
- f[x]=_find(f[x]);
- return f[x];
- }
- int main ()
- {
- while (~scanf ("%d %d",&n,&m)) {
- for (int i=;i<=n;i++)
- f[i]=i;
- memset(p,,sizeof(p));
- for (int i=;i<=m;i++) {
- int op,a,b;
- scanf ("%d %d %d",&op,&a,&b);
- if (op==) {
- int x1=_find(a);
- int x2=_find(b);
- if (x1==x2||p[x1]==x2) continue;
- if (!p[x1]&&!p[x2]) {
- p[x1]=x2;
- p[x2]=x1;
- }
- else if (!p[x1]&&p[x2]) f[x1]=p[x2];
- else if (!p[x2]&&p[x1]) f[x2]=p[x1];
- else {f[x2]=p[x1]; f[p[x2]]=x1;}
- //for (int i=1;i<=n;i++)
- // cout<<_find(i)<<" "<<p[i]<<endl;
- }
- else {
- int x1=_find(a);
- int x2=_find(b);
- if (x1==x2)
- printf ("In the same category.\n");
- else if (p[x1]==x2)
- printf ("In different category.\n");
- else
- printf ("Not sure yet.\n");
- }
- }
- }
- return ;
- }
xdoj 1254(H) 大整数减法 基本功
- #include<iostream>
- #include<cstdio>
- #include<cstring>
- #include<string>
- using namespace std;
- const int N=;
- int a[N];
- int b[N];
- int x1[N];
- int x2[N];
- string s1,s2;
- int cmp (int a[],int b[]) {
- for (int i=;i>=;i--) {
- if (a[i]>b[i]) return ;
- if (a[i]<b[i]) return -;
- }
- return ;
- }
- void f (int x[]) {
- memset(x1,,sizeof(x1));
- memset(x2,,sizeof(x2));
- int j=;
- for (int i=s1.size()-;i>=;i--)
- x1[j++]=s1[i]-'';
- j=;
- for (int i=s2.size()-;i>=;i--)
- x2[j++]=s2[i]-'';
- for (int i=;i<s1.size();i++) {
- if (x1[i]<x2[i]) {
- j=i;
- while (x1[j+]==) {
- x1[j+]=;
- j++;
- }
- x1[j+]--;
- x1[i]+=;
- }
- x[i]=(x1[i]-=x2[i]);
- }
- return ;
- }
- int main ()
- {
- cin>>s2>>s1;
- f(a);
- cin>>s2>>s1;
- f(b);
- if (cmp(a,b)>)
- printf ("Ting\n");
- else if (cmp(a,b)==)
- printf ("Excellent\n");
- else
- printf ("Yu\n");
- return ;
- }
xdoj 1257 (I) 曼哈顿距离 我也是百度的。。。哈哈哈
- #include<cstdio>
- #include<iostream>
- #include<algorithm>
- using namespace std;
- typedef long long ll;
- #define INF 0x3f3f3f3f
- int T,n;
- ll a1,a2,b1,b2;
- int main()
- {
- scanf("%d",&T);
- while(T--)
- {
- scanf("%d",&n);
- a1=b1=INF,a2=b2=-INF;
- for(int i=;i<n;i++)
- {
- ll x,y;
- scanf ("%lld %lld",&x,&y);
- a1=min(a1,x+y),a2=max(a2,x+y);
- b1=min(b1,x-y),b2=max(b2,x-y);
- }
- ll ans=max(a2-a1,b2-b1);
- printf("%lld\n",ans);
- }
- return ;
- }
xdoj 1250 (J) 好吧这道题我想了好久。。一天?/ 最后感谢formilk的i提示 用的先序遍历 。。居然过了。但应该不是最好的解法
- #include<cstdio>
- #include<algorithm>
- using namespace std;
- const int N=5e6+;
- struct T {
- int x;
- int y;
- };
- T k[];
- T s[*N];
- int ss;
- int t;
- int n_max;
- int a,b,c,d,n,m;
- void fare (int a,int b,int c,int d) {
- if (b+d>n_max) return ;
- fare (a,b,a+c,b+d);
- k[++t].x=(a+c);
- k[t].y=(b+d);
- fare (a+c,b+d,c,d);
- return ;
- }
- int gcd (int x,int y) {
- return !y?x:gcd(y,x%y);
- }
- void f(int& x,int& y ) {
- int p=gcd (x,y);
- x=x/p;
- y=y/p;
- return ;
- }
- int main ()
- {
- int Q;
- scanf ("%d",&Q);
- while (Q--) {
- scanf ("%d %d %d %d %d %d",&a,&b,&c,&d,&n,&m);
- ss=;
- f(a,b); T t1={a,b};
- f(c,d); T t2={c,d};
- n_max=max(b,d);
- t=;
- k[t].x=; k[t].y=;
- fare (,,,);
- k[++t].x=;k[t].y=;
- int i;
- for (i=;;i++) if (k[i].x==t2.x&&k[i].y==t2.y) break;
- for (;;i--) {
- s[++ss]=k[i];
- if (k[i].x==t1.x&&k[i].y==t1.y) break;
- }
- int nn=;
- while (){
- t1=s[ss--];
- nn++;
- if (nn==n+) break;
- if (ss==) break;
- t2=s[ss];
- while () {
- int x=t1.x+t2.x;
- int y=t1.y+t2.y;
- f(x,y);
- if (y<=m) {
- t2.x=x; t2.y=y;
- s[++ss]=t2;
- }
- else
- break;
- }
- }
- if (nn==n+&&!(t1.x==c&&t1.y==d))
- printf ("%d %d\n",t1.x,t1.y);
- else
- printf ("-1\n");
- }
- return ;
- }
有点匆忙 。。。还有作业啊 欢迎交流QQ-821474143
Contest1036 - 2017西安电子科技大学程序设计新生赛网络预选赛的更多相关文章
- 西安电子科技大学第16届程序设计竞赛 G-小国的复仇
西安电子科技大学第16届程序设计竞赛网络同步赛 G-小国的复仇 2 链接:https://www.nowcoder.com/acm/contest/107/G来源:牛客网 题目描述 众所周知,汀老师是 ...
- 西安电子科技大学第16届程序设计竞赛网络同步赛 G-小国的复仇
sb找规律. 分解因数. #include<bits/stdc++.h> #define LL long long #define fi first #define se second # ...
- 西安电子科技大学第16届程序设计竞赛 E Xieldy And His Password
链接:https://www.nowcoder.com/acm/contest/107/E来源:牛客网 Xieldy And His Password 时间限制:C/C++ 1秒,其他语言2秒 空间限 ...
- 西安电子科技大学第16届程序设计竞赛 B Words Game
链接:https://www.nowcoder.com/acm/contest/107/B来源:牛客网 Words Game 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 13107 ...
- 西安电子科技大学第16届程序设计竞赛 F Operating System (unique() 去重函数)
链接:https://www.nowcoder.com/acm/contest/107/F来源:牛客网 Operating System 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ ...
- 福建工程学院第七届ACM程序设计新生赛 (同步赛)
A.关电脑 #include<bits/stdc++.h> using namespace std; typedef long long LL; int T,h1,m1,s1,h2,m2, ...
- 第五届华中区程序设计邀请赛暨武汉大学第十四届校赛 网络预选赛 A
Problem 1603 - Minimum Sum Time Limit: 2000MS Memory Limit: 65536KB Total Submit: 564 Accepted: ...
- Minieye杯第十五届华中科技大学程序设计邀请赛现场同步赛 I Matrix Again
Minieye杯第十五届华中科技大学程序设计邀请赛现场同步赛 I Matrix Again https://ac.nowcoder.com/acm/contest/700/I 时间限制:C/C++ 1 ...
- Codeforces 801 A.Vicious Keyboard & Jxnu Group Programming Ladder Tournament 2017江西师大新生赛 L1-2.叶神的字符串
A. Vicious Keyboard time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
随机推荐
- Windows与Linux的回车换行转换
最初"\r"(return)表示“回车”即回到行首,“\n”(next)表示“换行”即定位到下一行:UNIX和Linux使用“\n”换行,而Windows用“\r\n”(不是\n\ ...
- Lock、synchronized和ReadWriteLock,StampedLock戳锁的区别和联系以及Condition
https://www.cnblogs.com/RunForLove/p/5543545.html 先来看一段代码,实现如下打印效果: 1 2 A 3 4 B 5 6 C 7 8 D 9 10 E 1 ...
- 查看mysql版本
方法一:show variables like 'version'; 方法二:select version();
- LY.JAVA面向对象编程.修饰符
2018-07-18 09:20:25 /* 修饰符: 权限修饰符:private,默认的,protected,public 状态修饰符:static,final 抽象修饰符:abstract 类: ...
- LY.JAVA面向对象编程.包的概述、导包
2018-07-18 08:46:57 导包:
- Android 音视频深入 六 使用FFmpeg播放视频(附源码下载)
本篇项目地址,求starhttps://github.com/979451341/Audio-and-video-learning-materials/tree/master/FFmpeg%E6%92 ...
- selenium(七)expected_conditions EC
判断一个元素是否存在,如何判断alert弹窗出来了,如何判断动态的元素等等一系列的判断,在selenium的expected_conditions模块收集了一系列的场景判断方法, 一.功能介绍和翻译 ...
- flask项目结构(四)使用sqlalchemy和alembic
简介 其实我不是啥正经人,错了,不是啥正经程序员,所能想到的估计也就码农一级吧,高级程序员,搞什么算法,什么人工智能,大数据计算…………离我还太遥远. 但是这并不妨碍我继续学习,继续写垃圾小程序. 反 ...
- 每天CSS学习之line-height
line-height是CSS的一个属性,其作用是设置行高.其有以下几种值: 1.normal:自动设置合理的行间距.该值是默认值.如下示例: p{ line-height:normal; } 结果: ...
- 首次编译Java小程序
public class helloworld { public static void main(string[] args) { system.out.println("hello wo ...