转跳到内容

随性而为

【会员】中级会员
  • 内容数

    352
  • 加入

  • 最后访问

2 位关注者

关于随性而为

经济

  • 羽毛 0.00 根
  • 节操值 0.00 节操值

最近资料访问用户

2,199 次访问

随性而为的成就

史莱姆勇者【哪个勇者不是从史莱姆打起】

史莱姆勇者【哪个勇者不是从史莱姆打起】 (1/9)

  • 我的态度:按个表情按钮能省不少字
  • 回音:来而不往非礼也
  • 破壳日:欢迎来到SS同盟

最近徽章

  1. 从开池子之前就意识到月卡就剩2天了,但我故意没续,就想看看这次的池子毒不毒,池子一开我就拿着从2月开始攒到现在的合成玉(中间的常规池动都没动)试水,抽的过程中一度怀疑人生,直到最后一个十连才请出了w,差点连月卡都不想氪了,99发2个六星,一个温蒂一个w,真就2%的出货率呗(上次年池也是110抽2个六星,总觉得限定池的出货率比常规池低),我感觉心累,白嫖(小月卡党)想要全六星真的遥遥无期,如果不能全六星,那么月卡对我来说也只是纯粹的浪费钱而已
  2. 怎么说呢,这个DFS虽然可能有点问题(繁琐),但是绝对可以找到最短路径,因为递归的本质就是把所有的可能都走一遍,这其中包括了最短路径,当然我上面的代码可能会输出很多的yes或者no(因为除了最短路径可能会有其他路径),这样的话我们可以声明一个flag=0,把原来输出yes的操作改为通过指针使flag++;当递归结束后判断flag的值,0为no,非0为yes 如果说硬要反复横跳的话,那就把判断的条件改一下呗,就像2楼说得还是比较方便的,判断s-top是否为奇偶。
  3. 感觉就是经典的递归问题…… struct maze { char chara; int visited;//这个就废除了吧 } struct maze[m][n]; (此处略去将maze的每个元素中chara的初始化和visited都为0的操作) int check(int row,int col,struct maze[][],top) { if(row==final_row&&col==final.col) { if(top<=s) printf("yes"); else printf("no");//这里我觉得只要提前到了终点处就算没开也应该要等在那啊,不应该还在失了智的左右横跳等出口啊 } if(row<=m-1&&col<=n-1&&maze[row][col].chara!='#'&&top<=s) { check(row,col+1,maze,top+1); check(row,col-1,maze,top+1); check(row+1,col,maze,top+1); check(row-1,col,maze,top+1); } } int main() { int top=0,start_row(初始化),start_col(初始化); check(start_row,start_col,maze,top); }
  4. 我们都爱懒懒 很磁性的嗓音,温柔而又中气十足,相比之下……我的嗓音太软了
  5. 用二叉树的思路: struct{ int max,min/*代表这一段地址的开始和结束*/,*p/*可以用p=new int[max-min]来存储这一段地址中的数据*/; struct btree *lchild,*rchild,*parent; int base/*判断是否是最底层,每当创造新结点就令该结点的base为1,令其父结点base变0*/ }btree 基本的结构:结点A表示的地址段和其左右结点的地址段的大小关系为 左子树地址段<父节点地址段<右子树地址段 malloc B L:struct *temp1,将B从根节点开始逐层比较,在这个过程中如果出现(结点A.min<B<结点A.max)则表示需要分配的地址重复,函数执行失败,否则,若A.min>B则temp=A.lchild,若A.max<B则temp=A.rchild,直到最底层,同理struct *temp1对B+L也如此操作,若temp==temp1表明他们在同一个未被分配的地址区间,创造一个结点New和已有的树建立联系,,New.min=B,New.max=B+L,同时New.p=new int[New.max-New.min],若temp!=temp1,说明max和min之间夹杂着已被分配的空间,函数执行失败. access p:没什么好说的……,就是逐层判断,看p在那个结点的max和min之间,然后访问那个结点的数组,如果找不到对应的max和min,说明未被分配,函数失败 free p:如果p必须是一开始分配时的基地址时,则逐层和min比较,找到了,则将该结点右子树数据复制给该结点,然后释放该结点的右子树(这样做不会改变基本的结构),如果p没什么严格要求的话,就逐层判断p是否在min,max之间,找到了,则该结点的max=p。如果以上两种情况都i没有找到,则函数执行失败 list :如果是这个结构的话好像就是树的中序遍历?当然要是也要显示free的起始和长度的话可以在btree结构体中加一个变量,但这样对这个变量操作有点烦,不如创一个数组记录每段的min和max,排序一下再遍历输出
  6. 这我倒没想到,既然这样就去下载64位程序啊
  7. 我还是更倾向于用数组的 struct a{ int data; int used; int start } struct a[2^32],一开始a.used都为0,表示未分配 malloc B L时先查找a到a[B+L],如果有一个used为1则不成功,否则a到a[B+L]中used都为1,start都为B,返回B,如果需要记录什么数据就a[B+i]=?; access p就是先看a[p].used,再判断是否读a[p].data; free p就是看a[p].start是否为p,如果是的话就把之后start为p的重置了; list就是int start,count把整个数组遍历一遍综合看a[p].used和a[p].start,每次走完一段就输出start和count,然后刷新这两个变量 (还没学操作系统,基本上就这样?可能有些地方理解错误了,望指出,动脑是不可能动的,这辈子都不可能的)
  8. 所以说我不是修改了那个回复了么……
  9. 浏览了下题目和大佬的初步分析,我感觉没必要用哈希表啊,如果想要o(n^2)的话,可以这样 for(i=0;i<=N;i++) for(j=0;j<=N;j++) if((M-i*A-j*B)%C==0&&(M-i*A-j*B)/C<=N) count ++; 应该是可以跑hard难度的?extreme难度……,你这M怎么记录呢,unsigned long long好像也只能记到2^64-1 (理解错题目的意思了,尴尬) (01规划已经看见大佬提了好多次了,看来是时候取学习一下了) ps:昨天练了一天的车,真jb累,第一次跑还被教练冷嘲热讽的
  10. 问:在双向通道中来回横跳怎么办 然而不管你怎么改,我都不会做
  11. 确实,不过有一说一我第一次听说有学校是这么昵称的
  12. 我们两个……是同一个学校 ps:很佩服那个小姐姐,在椅子上做俯卧撑一个都做不了
  13. 操(指好几种就算很羞耻也要不得不照做的操,以椅子操为代表)
×
×
  • 新建...

重要消息

为使您更好地使用该站点,请仔细阅读以下内容: 使用条款