一名大三older 希望能帮助大一萌新。。。加油 xiandianer!!!!;

xdoj 1260 (B) 水题 用了一下STL (好长啊。。。)

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<algorithm>
  4. #include<map>
  5. using namespace std;
  6. const int N=;
  7. struct T{
  8. string suj;
  9. double p;
  10. bool operator <(const T& b) const {
  11. return suj<b.suj;
  12. }
  13. };
  14. map <T,int> mapp;
  15. int n;
  16. double f (int x) {
  17. if (x<=) return 0.0;
  18. if (x<=) return 1.0;
  19. if (x<=) return 1.5;
  20. if (x<=) return 1.7;
  21. if (x<=) return 2.0;
  22. if (x<=) return 2.3;
  23. if (x<=) return 2.7;
  24. if (x<=) return 3.0;
  25. if (x<=) return 3.3;
  26. if (x<=) return 3.7;
  27. return 4.0;
  28. }
  29. int main ()
  30. {
  31. cin>>n;
  32. map<T,int>::iterator it;
  33. for (int i=;i<=n;i++) {
  34. T temp;
  35. int w;
  36. cin>>temp.suj>>temp.p>>w;
  37. if (mapp[temp]<w)
  38. mapp[temp]=w;
  39. }
  40. it=mapp.begin();
  41. double sum=0.0;
  42. double k=0.0;
  43. double nn=0.0;
  44. while (it!=mapp.end()) {
  45. sum+=(it->first.p)*(it->second);
  46. k+=(it->first.p)*f(it->second);
  47. nn+=it->first.p;
  48. it++;
  49. }
  50. printf ("%.1lf\n%.2lf\n",sum/nn,k/nn);
  51. return ;
  52. }

xdoj 1255 (C) 水题 不明白为什么不加getchar() 会GG;

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<string>
  4. using namespace std;
  5. char* str="0123456789ABCDEF";
  6. int main ()
  7. {
  8. int x,y,z;
  9. while (~scanf("(%d, %d, %d)",&x,&y,&z)) {
  10. char s[];
  11. s[]=str[x/];
  12. s[]=str[x%];
  13. s[]=str[y/];
  14. s[]=str[y%];
  15. s[]=str[z/];
  16. s[]=str[z%];
  17. s[]='\0';
  18. cout<<"#"<<s<<endl;
  19. getchar();
  20. }
  21. return ;
  22. }

xdoj 1265(D) 取余找循环节呗。

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<algorithm>
  5. using namespace std;
  6. const int N=;
  7. int mod=;
  8. struct T {
  9. int a;
  10. int b;
  11. };
  12. T t[N];
  13. int p[N];
  14. int A,B,C;
  15. int n,k;
  16. int mycmp (T aa,T bb) {
  17. return aa.a>bb.a;
  18. }
  19. int main ()
  20. {
  21. int nn;
  22. scanf ("%d",&nn);
  23. while (nn--) {
  24. scanf ("%d %d %d",&A,&B,&C);
  25. memset (p,,sizeof(p));
  26. int i=;
  27. t[].a=A;
  28. p[A]=;
  29. while () {
  30. t[i+].a=(t[i].a*B+C)%mod;
  31. if (p[t[i+].a])
  32. break;
  33. else
  34. p[t[i+].a]=i+;
  35. i++;
  36. }
  37. int x1=p[t[i+].a];
  38. int x2=i;
  39. int num=x2-x1+;
  40. scanf ("%d %d",&n,&k);
  41. int times=(n-x1+)/num;
  42. for (i=;i<=x2;i++) {
  43. if (i<x1) t[i].b=;
  44. else if (i<=x1+(n-x1+)%num)
  45. t[i].b=times+;
  46. else
  47. t[i].b=times;
  48. }
  49. sort (t+,t++x2,mycmp);
  50. i=;
  51. while () {
  52. if (p[t[i].a]>n) {i++; continue;}
  53. if (k-t[i].b<=) break;
  54. else k-=t[i].b;
  55. i++;
  56. }
  57. printf ("%d\n",t[i].a);
  58. }
  59. return ;
  60. }

xdoj 1262(E) 找A前后Q数目相乘

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. using namespace std;
  5. typedef long long LL;
  6. const int N=1e5+;
  7. char str[N];
  8. int main ()
  9. {
  10. scanf ("%s",str);
  11. int len=strlen(str);
  12. LL n1=;
  13. for (int i=;i<len;i++) {
  14. if (str[i]=='Q')
  15. n1++;
  16. }
  17. LL n2=;
  18. LL sum=;
  19. for (int i=;i<len;i++) {
  20. if (str[i]=='Q')
  21. n2++;
  22. if (str[i]=='A')
  23. sum+=n2*(n1-n2);
  24. }
  25. printf ("%lld\n",sum);
  26. return ;
  27. }

xdoj  1264(F) 找一下规律 发现数据按照二进制递增的

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<iostream>
  4. using namespace std;
  5. typedef long long LL;
  6. bool a[];
  7. int main ()
  8. {
  9. LL n;
  10. while (~scanf ("%lld",&n)) {
  11. memset (a,,sizeof(a));
  12. int i=;
  13. while (n) {
  14. if (n&) a[i]=;
  15. n=n>>;
  16. i++;
  17. }
  18. for (int i=;i>=;i--) {
  19. if (a[i])
  20. printf ("R");
  21. else
  22. printf ("G");
  23. }
  24. printf ("\n");
  25. }
  26. return ;
  27. }

xdoj 1261(G)  开始用图做的 GG了最后用的并查集

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<iostream>
  4. using namespace std;
  5. const int N=1e6+;
  6. int p[N];
  7. int f[N];
  8. int n,m;
  9. int _find(int x) {
  10. if (x!=f[x])
  11. f[x]=_find(f[x]);
  12. return f[x];
  13. }
  14. int main ()
  15. {
  16. while (~scanf ("%d %d",&n,&m)) {
  17. for (int i=;i<=n;i++)
  18. f[i]=i;
  19. memset(p,,sizeof(p));
  20. for (int i=;i<=m;i++) {
  21. int op,a,b;
  22. scanf ("%d %d %d",&op,&a,&b);
  23. if (op==) {
  24. int x1=_find(a);
  25. int x2=_find(b);
  26. if (x1==x2||p[x1]==x2) continue;
  27. if (!p[x1]&&!p[x2]) {
  28. p[x1]=x2;
  29. p[x2]=x1;
  30. }
  31. else if (!p[x1]&&p[x2]) f[x1]=p[x2];
  32. else if (!p[x2]&&p[x1]) f[x2]=p[x1];
  33. else {f[x2]=p[x1]; f[p[x2]]=x1;}
  34. //for (int i=1;i<=n;i++)
  35. // cout<<_find(i)<<" "<<p[i]<<endl;
  36. }
  37. else {
  38. int x1=_find(a);
  39. int x2=_find(b);
  40. if (x1==x2)
  41. printf ("In the same category.\n");
  42. else if (p[x1]==x2)
  43. printf ("In different category.\n");
  44. else
  45. printf ("Not sure yet.\n");
  46. }
  47. }
  48. }
  49. return ;
  50. }

xdoj  1254(H) 大整数减法 基本功

  1. #include<iostream>
  2. #include<cstdio>
  3. #include<cstring>
  4. #include<string>
  5. using namespace std;
  6. const int N=;
  7. int a[N];
  8. int b[N];
  9. int x1[N];
  10. int x2[N];
  11. string s1,s2;
  12. int cmp (int a[],int b[]) {
  13. for (int i=;i>=;i--) {
  14. if (a[i]>b[i]) return ;
  15. if (a[i]<b[i]) return -;
  16. }
  17. return ;
  18. }
  19. void f (int x[]) {
  20. memset(x1,,sizeof(x1));
  21. memset(x2,,sizeof(x2));
  22. int j=;
  23. for (int i=s1.size()-;i>=;i--)
  24. x1[j++]=s1[i]-'';
  25. j=;
  26. for (int i=s2.size()-;i>=;i--)
  27. x2[j++]=s2[i]-'';
  28. for (int i=;i<s1.size();i++) {
  29. if (x1[i]<x2[i]) {
  30. j=i;
  31. while (x1[j+]==) {
  32. x1[j+]=;
  33. j++;
  34. }
  35. x1[j+]--;
  36. x1[i]+=;
  37. }
  38. x[i]=(x1[i]-=x2[i]);
  39. }
  40. return ;
  41. }
  42. int main ()
  43. {
  44. cin>>s2>>s1;
  45. f(a);
  46. cin>>s2>>s1;
  47. f(b);
  48. if (cmp(a,b)>)
  49. printf ("Ting\n");
  50. else if (cmp(a,b)==)
  51. printf ("Excellent\n");
  52. else
  53. printf ("Yu\n");
  54. return ;
  55. }

xdoj 1257 (I) 曼哈顿距离 我也是百度的。。。哈哈哈

  1. #include<cstdio>
  2. #include<iostream>
  3. #include<algorithm>
  4. using namespace std;
  5. typedef long long ll;
  6. #define INF 0x3f3f3f3f
  7. int T,n;
  8. ll a1,a2,b1,b2;
  9. int main()
  10. {
  11. scanf("%d",&T);
  12. while(T--)
  13. {
  14. scanf("%d",&n);
  15. a1=b1=INF,a2=b2=-INF;
  16. for(int i=;i<n;i++)
  17. {
  18. ll x,y;
  19. scanf ("%lld %lld",&x,&y);
  20. a1=min(a1,x+y),a2=max(a2,x+y);
  21. b1=min(b1,x-y),b2=max(b2,x-y);
  22. }
  23. ll ans=max(a2-a1,b2-b1);
  24. printf("%lld\n",ans);
  25. }
  26. return ;
  27. }

xdoj 1250 (J) 好吧这道题我想了好久。。一天?/ 最后感谢formilk的i提示 用的先序遍历 。。居然过了。但应该不是最好的解法

  1. #include<cstdio>
  2. #include<algorithm>
  3. using namespace std;
  4. const int N=5e6+;
  5. struct T {
  6. int x;
  7. int y;
  8. };
  9. T k[];
  10. T s[*N];
  11. int ss;
  12. int t;
  13. int n_max;
  14. int a,b,c,d,n,m;
  15. void fare (int a,int b,int c,int d) {
  16. if (b+d>n_max) return ;
  17. fare (a,b,a+c,b+d);
  18. k[++t].x=(a+c);
  19. k[t].y=(b+d);
  20. fare (a+c,b+d,c,d);
  21. return ;
  22. }
  23. int gcd (int x,int y) {
  24. return !y?x:gcd(y,x%y);
  25. }
  26. void f(int& x,int& y ) {
  27. int p=gcd (x,y);
  28. x=x/p;
  29. y=y/p;
  30. return ;
  31. }
  32. int main ()
  33. {
  34. int Q;
  35. scanf ("%d",&Q);
  36. while (Q--) {
  37. scanf ("%d %d %d %d %d %d",&a,&b,&c,&d,&n,&m);
  38. ss=;
  39. f(a,b); T t1={a,b};
  40. f(c,d); T t2={c,d};
  41. n_max=max(b,d);
  42. t=;
  43. k[t].x=; k[t].y=;
  44. fare (,,,);
  45. k[++t].x=;k[t].y=;
  46. int i;
  47. for (i=;;i++) if (k[i].x==t2.x&&k[i].y==t2.y) break;
  48. for (;;i--) {
  49. s[++ss]=k[i];
  50. if (k[i].x==t1.x&&k[i].y==t1.y) break;
  51. }
  52. int nn=;
  53. while (){
  54. t1=s[ss--];
  55. nn++;
  56. if (nn==n+) break;
  57. if (ss==) break;
  58. t2=s[ss];
  59. while () {
  60. int x=t1.x+t2.x;
  61. int y=t1.y+t2.y;
  62. f(x,y);
  63. if (y<=m) {
  64. t2.x=x; t2.y=y;
  65. s[++ss]=t2;
  66. }
  67. else
  68. break;
  69. }
  70. }
  71. if (nn==n+&&!(t1.x==c&&t1.y==d))
  72. printf ("%d %d\n",t1.x,t1.y);
  73. else
  74. printf ("-1\n");
  75. }
  76. return ;
  77. }

有点匆忙  。。。还有作业啊 欢迎交流QQ-821474143

Contest1036 - 2017西安电子科技大学程序设计新生赛网络预选赛的更多相关文章

  1. 西安电子科技大学第16届程序设计竞赛 G-小国的复仇

    西安电子科技大学第16届程序设计竞赛网络同步赛 G-小国的复仇 2 链接:https://www.nowcoder.com/acm/contest/107/G来源:牛客网 题目描述 众所周知,汀老师是 ...

  2. 西安电子科技大学第16届程序设计竞赛网络同步赛 G-小国的复仇

    sb找规律. 分解因数. #include<bits/stdc++.h> #define LL long long #define fi first #define se second # ...

  3. 西安电子科技大学第16届程序设计竞赛 E Xieldy And His Password

    链接:https://www.nowcoder.com/acm/contest/107/E来源:牛客网 Xieldy And His Password 时间限制:C/C++ 1秒,其他语言2秒 空间限 ...

  4. 西安电子科技大学第16届程序设计竞赛 B Words Game

    链接:https://www.nowcoder.com/acm/contest/107/B来源:牛客网 Words Game 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 13107 ...

  5. 西安电子科技大学第16届程序设计竞赛 F Operating System (unique() 去重函数)

    链接:https://www.nowcoder.com/acm/contest/107/F来源:牛客网 Operating System 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ ...

  6. 福建工程学院第七届ACM程序设计新生赛 (同步赛)

    A.关电脑 #include<bits/stdc++.h> using namespace std; typedef long long LL; int T,h1,m1,s1,h2,m2, ...

  7. 第五届华中区程序设计邀请赛暨武汉大学第十四届校赛 网络预选赛 A

    Problem 1603 - Minimum Sum Time Limit: 2000MS   Memory Limit: 65536KB   Total Submit: 564  Accepted: ...

  8. Minieye杯第十五届华中科技大学程序设计邀请赛现场同步赛 I Matrix Again

    Minieye杯第十五届华中科技大学程序设计邀请赛现场同步赛 I Matrix Again https://ac.nowcoder.com/acm/contest/700/I 时间限制:C/C++ 1 ...

  9. 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 ...

随机推荐

  1. Windows与Linux的回车换行转换

    最初"\r"(return)表示“回车”即回到行首,“\n”(next)表示“换行”即定位到下一行:UNIX和Linux使用“\n”换行,而Windows用“\r\n”(不是\n\ ...

  2. 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 ...

  3. 查看mysql版本

    方法一:show variables like 'version'; 方法二:select version();

  4. LY.JAVA面向对象编程.修饰符

    2018-07-18 09:20:25 /* 修饰符: 权限修饰符:private,默认的,protected,public 状态修饰符:static,final 抽象修饰符:abstract 类: ...

  5. LY.JAVA面向对象编程.包的概述、导包

    2018-07-18 08:46:57 导包:

  6. Android 音视频深入 六 使用FFmpeg播放视频(附源码下载)

    本篇项目地址,求starhttps://github.com/979451341/Audio-and-video-learning-materials/tree/master/FFmpeg%E6%92 ...

  7. selenium(七)expected_conditions EC

    判断一个元素是否存在,如何判断alert弹窗出来了,如何判断动态的元素等等一系列的判断,在selenium的expected_conditions模块收集了一系列的场景判断方法, 一.功能介绍和翻译 ...

  8. flask项目结构(四)使用sqlalchemy和alembic

    简介 其实我不是啥正经人,错了,不是啥正经程序员,所能想到的估计也就码农一级吧,高级程序员,搞什么算法,什么人工智能,大数据计算…………离我还太遥远. 但是这并不妨碍我继续学习,继续写垃圾小程序. 反 ...

  9. 每天CSS学习之line-height

    line-height是CSS的一个属性,其作用是设置行高.其有以下几种值: 1.normal:自动设置合理的行间距.该值是默认值.如下示例: p{ line-height:normal; } 结果: ...

  10. 首次编译Java小程序

    public class helloworld { public static void main(string[] args) { system.out.println("hello wo ...