今天依旧很惨...本来第二题可以A的,感觉很久没有碰数学,出现这样的低级错误,简直逗了...晚上的话打算找了书店,静下心来看点书进去吧

但是其他题目就不太好写了..我直接发题解好了

T1:贪心

其实贪心是最好写的,但是贪心特别考一个人的代码能力...哎..像我这样打代码打得不够多的人..

一遇到贪心,就很容易出现神马,模拟的时候呵呵啊..或是那个变量又打错的情况..TAT..

附上代码+注释:

  1. #include<cstdio>
  2. #include<cstring>
  3. #include<algorithm>
  4. using namespace std;
  5. long long n,tot=0,sum=0,ans=0,k,l,ll,maxn,maxi;
  6. int a[3001],b[3001];
  7. int main(){
  8. //freopen("game.in","r",stdin);freopen("game.out","w",stdout);
  9. scanf("%d",&n);
  10. for(int i=1;i<=n;i++){
  11. scanf("%d%d",&a[i],&b[i]);
  12. if(b[i]>2*n){//因为最大的情况就是第二难度都可以过,所以最大值为2*n,如果B[I]>2*n,就不可能有解
  13. printf("Too Bad\n");
  14. return 0;
  15. }
  16. }
  17. l=0;ll=0;//l表示过第二难度的数目,ll表示最少的游戏次数
  18. while(l<n){
  19. k=0;
  20. tot=sum;//这是用来判断sum的值是否改变,如果sum的值没有改变,说明没有可以玩的游戏了,也就没有解了
  21. for(int i=1;i<=n;i++){
  22. if(b[i]!=-1 && sum>=b[i]){
  23. sum+=2;
  24. if (a[i]==-1) sum--;//如果第一难度有玩过,就减一..PS:审题!
  25. a[i]=-1;//因为能力值只于当前的最高难度有关,所以如果玩过了第二难度,第一难度就没有必要玩了
  26. b[i]=-1;//所以都记录为已经玩过了
  27. l++;
  28. ll++;
  29. k=1;//记录已经有第二难度可以玩了
  30. break;
  31. }
  32. }
  33. maxn=0;
  34. maxi=0;
  35. for(int i=n;i>=1;i--){
  36. if(k==1) break;//如果已被记录,则break..看看还有没有可以玩第二难度的游戏
  37. if(a[i]<=sum && a[i]!=-1 && b[i]>maxn){//记录最大的即可...
  38. maxn=b[i];
  39. maxi=i;
  40. }
  41. }
  42. if(maxi!=0){//玩第一难度的情况
  43. a[maxi]=-1;
  44. sum++;
  45. ll++;
  46. }
  47. if(tot==sum){//sum的值不改变...
  48. printf("Too Bad\n");
  49. return 0;
  50. }
  51. }
  52. printf("%d",ll);
  53. return 0;
  54. }

T2:应该算是数论吧...

keso...如此白痴的题目我居然写错了...你妹啊..直接判断某个点在不在那个范围之内不就得了..我个傻逼 当时居然去枚举...简直是有病!

  1. #include <cstdio>
  2. #include <algorithm>
  3. using namespace std;
  4.  
  5. int n, a[2000][6], ans;
  6.  
  7. bool cover(int i, int j){
  8. if (a[i][3] < a[j][0] || a[j][3] < a[i][0]) return 0;
  9. if (a[i][4] < a[j][1] || a[j][4] < a[i][1]) return 0;
  10. if (a[i][5] < a[j][2] || a[j][5] < a[i][2]) return 0;
  11. return 1;
  12. }
  13.  
  14. int main(){
  15. freopen("prostor.in", "r", stdin);
  16. freopen("prostor.out", "w", stdout);
  17. scanf("%d", &n);
  18. for (int i = 0; i < n; i++){
  19. scanf("%d%d%d%d%d%d",
  20. &a[i][0], &a[i][1], &a[i][2], &a[i][3], &a[i][4], &a[i][5]);
  21. if (a[i][0] > a[i][3])
  22. swap(a[i][0], a[i][3]);
  23. if (a[i][1] > a[i][4])
  24. swap(a[i][1], a[i][4]);
  25. if (a[i][2] > a[i][5])
  26. swap(a[i][2], a[i][5]);
  27. }
  28.  
  29. for (int i = 0; i < n; i++)
  30. for (int j = i + 1; j < n; j++)
  31. ans += cover(i, j);
  32. printf("%d\n", ans);
  33. return 0;
  34. }

T3:据某个大神说是两遍spfa..

  1. var
  2. first:array[1..20000] of longint;//模拟邻接表用到
  3. h:array[1..200000] of longint;//队列
  4. bo:array[1..200000] of boolean;//判断是否在队列中
  5. w,en,next,start,cost,jiange,sum:array[0..20000] of longint;//数组模拟邻接表
  6. b:array[1..2000] of longint;//存每个巴士的路线
  7. n,m,qi,zhong,i,j,shumu,jian,totm,qikai,head,tail,temp,kaishi,tot,duo,tot1,tot2,total,last,c:longint;
  8. dis:array[1..20000] of longint;//dis[i]表示到i所费的最短时间
  9.  
  10. procedure spfa(pre,suc,chu:longint);//pre是起点,suc是终点,chu代表初值
  11. begin
  12. fillchar(bo,sizeof(bo),false);
  13. fillchar(dis,sizeof(dis),$7f div 3);
  14. head:=0;tail:=1;h[1]:=pre;bo[pre]:=true;
  15. dis[pre]:=chu;
  16. while head<tail do//spfa部分我解释一下
  17. begin
  18. inc(head);
  19. temp:=h[head];//取出队头
  20. bo[temp]:=false;//这个队头元素不再存在于队列中
  21. qikai:=first[temp];//到表头
  22. while qikai<>0 do//如果不为空 在链表中可以表示为<>nil
  23. begin
  24. kaishi:=start[qikai];//start[i]表示到i这个点所花费的时间tot*k+x中的x k是间隔时间
  25. tot:=0;
  26. while kaishi+tot*jiange[qikai]<dis[temp] do inc(tot);//不断更新tot的值使得tot*k+x>=dis[temp] 这样它才能//坐到车
  27. duo:=kaishi+tot*jiange[qikai]-dis[temp];//这是他要等的时间
  28. if dis[temp]+w[qikai]+duo<dis[en[qikai]] then//按照三角不等式更新最短时间 ,en[k]是这个空间的出度元素
  29. begin
  30. dis[en[qikai]]:=dis[temp]+w[qikai]+duo;//更新!
  31. if not bo[en[qikai]] then//如果不存在于队列中就入队
  32. begin
  33. bo[en[qikai]]:=true;
  34. inc(tail);
  35. h[tail]:=en[qikai];
  36. end;
  37. end;
  38. qikai:=next[qikai];//下一个
  39. end;
  40. end;
  41. tot1:=dis[suc];
  42. end;
  43.  
  44. begin
  45. assign(input,'water.in');
  46. reset(input);
  47. assign(output,'water.out');
  48. rewrite(output);
  49. totm:=0;
  50. fillchar(first,sizeof(first),0);
  51. readln(n,m,qi,zhong);
  52. for i:=1 to m do
  53. begin
  54. read(shumu);
  55. for j:=1 to shumu do read(b[j]);
  56. readln;
  57. read(jian);
  58. last:=0;
  59. for j:=1 to shumu-1 do//改变了一下方式直接存
  60. begin
  61. read(c);//读入巴士间隔
  62. inc(totm);//增加节点
  63. next[totm]:=first[b[j]];//链式存储
  64. first[b[j]]:=totm;//串连起来
  65. w[totm]:=c-last;//这是减去上一个,剩下的就是当前的信息了
  66. start[totm]:=last;//这是这个我上述tot*k+x中的x(在累加)
  67. jiange[totm]:=jian;//记录间隔
  68. en[totm]:=b[j+1];//记录出度
  69. last:=c;//方便下一个的存储
  70. end;
  71. readln;
  72. end;
  73. close(input);
  74. spfa(qi,zhong,0);//从起点到终点的spfa,最后dis[zhong]记录在tot1中
  75. spfa(zhong,qi,tot1);//从终点到起点的spfa,因为时间不能间断所以初值为tot1,最后dis[qi]记录在tot1中
  76. writeln(tot1);//
  77. close(output);
  78. end.

T4:DP..

依旧不会TAT..

D6的更多相关文章

  1. 预科班D6

    2020.09.14星期一 预科班D6 学习内容: 自习 发布小游戏 1.配置网络 #查看当前ip ifconfig #关闭NetworkManager systemctl stop NetworkM ...

  2. D6 I

    I - I Time Limit:1000MS     Memory Limit:2048KB     64bit IO Format:%lld & %llu Submit Status Pr ...

  3. 阿里云ECS每天一件事D6:安装nginx-1.6.2

    自从接触nginx就开始喜欢上这个小东西了,似乎没什么特别的原因,就是喜欢而已. 1.安装环境的准备 yum install pcre pcre-devel openssl openssl-devel ...

  4. [补档]暑假集训D6总结

    考试 不是爆零,胜似爆零= = 三道题,就拿了20分,根本没法玩好吧= = 本来以为打了道正解,打了道暴力,加上个特判分,应该不会死的太惨,然而--为啥我只有特判分啊- - 真的是惨. 讲完题觉得题是 ...

  5. 【重学计算机】操作系统D6章:并发程序设计

    1. 并发程序的基本概念 程序顺序性 内部顺序性:CPU严格按照顺序执行指令 外部顺序性:程序员设计程序时往往用顺序设计的思想 顺序程序特性 程序执行的顺序性 计算环境的封闭性: 程序执行时犹如独占资 ...

  6. 【重学计算机】机组D6章:中央处理器

    1. CPU的组成与功能 2. 数据通路 概念:执行部件间传送信息的路径,分共享通路(总线)和专用通路 抽象模型:时钟驱动下,A --> 组合逻辑 --> B D触发器定时模型: 时钟触发 ...

  7. [西安交大附中集训] d6 删边(cip)

    B. 删边(cip.cpp/in/out 1S/256M) 题面 给出一个没有重边和自环的无向图,现在要求删除其中两条边,使得图仍然保持连通. 你的任务是计算有多少组不合法的选边方案.注意方案是无序二 ...

  8. D6差分及树上差分

    原谅我这篇博客拖了很久才写: 来到学校就和白痴一样缺了一世纪的课 上课特别懵:还有开学考枯了: 差分有列的差分,对于一段区间[l,r]进行修改,显然如果我们对于他的差分数组的l和r+1进行修改就可以了 ...

  9. 前端学HTTP之字符集

    前面的话 HTTP报文中可以承载以任何语言表示的内容,就像它能承载图像.影片或任何类型的媒体那样.对HTTP来说,实体主体只是二进制信息的容器而已.为了支持国际性内容,服务器需要告知客户端每个文档的字 ...

随机推荐

  1. javascript 中的location.pathname

    1 location.pathname; 这在之前我没怎么注意过,所以研究研究.location.pathname:返回URL的域名(域名IP)后的部分.例如 http://www.joymood.c ...

  2. android 实现真正意义上的服务及源代码下载

    android APP后台服务和长期server长期互动,保证实时数据,这个小项目主要实施app退出后仍然能够执行服务. 使用该系统的Intent.ACTION_TIME_TICK现,这个系统的广播每 ...

  3. java io流之int数组数据的插入与取出

    java io流大家都非常熟悉吧,有时候假设用的不熟,对于数据的处理真的非常头疼,以下是对与int数组的处理. 以下是代码: public class Stream { private int a[] ...

  4. 百度地图API显示多个标注点,解决提示信息问题以及给标注增加地图旁的文字连接提示的另一种解决办法

    原文:百度地图API显示多个标注点,解决提示信息问题以及给标注增加地图旁的文字连接提示的另一种解决办法 公司的网站改版要求在一个页面显示百度地图.上面要同时显示很多标注点,标注点当然要有提示信息嘛,提 ...

  5. Codeforces 328B-Sheldon and Ice Pieces(馋)

    B. Sheldon and Ice Pieces time limit per test 1 second memory limit per test 256 megabytes input sta ...

  6. Ionic项目中使用极光推送-android

    对于Ionic项目中使用消息推送服务,Ionic官方提供了ngCordova项目,这个里面的提供了用angularjs封装好的消息推送服务(官方文档),使用的是GitHub上的 PushPlugin ...

  7. STL容器存储的内容动态分配情况下的内存管理

    主要分两种情况:存储的内容是指针:存储的内容是实际对象. 看以下两段代码, typedef pair<VirObjTYPE, std::list<CheckID>*> VirO ...

  8. Beginning Python From Novice to Professional (5) - 条件与循环

    条件与循环 条件运行: name = raw_input('What is your name? ') if name.endswith('Gumby'): print 'Hello, Mr.Gumb ...

  9. js 正则之检测素数

    原文:js 正则之检测素数 相信很多人应该看过这篇文章,我第一次看到的时候是11年的样子,那时候学vbs的时候看过这个问题.原文<检查素数的正则表达式>,在文章里已经解释了他是怎么判断的, ...

  10. webkit的几个属性

    -webkit-text-size-adjust 1.当样式表里font-size<12px时,中文版chrome浏览器里字体显示仍为12px,这时可以用 html{-webkit-text-s ...