winbootmgr.cpp

政府科技管理者如何提升科技成果转化项目进场交易的备案效率?.docx 政府科技管理者如何提升科技成果转化项目进场交易的备案效率? 立即下载

by mj0011

  1. // winbootmgr.cpp : Defines the entry point for the console application.
  2. //
  3. #include "stdafx.h"
  4. #include "windows.h"
  5. #include "winbase.h"
  6. #include "stdio.h"
  7. #include <stdlib.h>
  8. #define BOOT_MGR_TYPE 0x10100002
  9. #define BOOT_MGR_NAME_ELEMENTS 12000004
  10. #define BOOT_MGR_LOCAL 12000005
  11. #define BOOT_MGR_PTR_TO_DEFULT_OS 23000003
  12. #define BOOT_MGR_PTR_TO_DEFULT_REMUSE 23000006
  13. #define BOOT_MGR_BOOT_OS_LIST 24000001
  14. #define BOOT_MGR_PTR_TO_MEMTEST 24000010
  15. #define BOOT_MGR_WAIT_TIME    25000004
  16. #define OS_BOOTLOADER_PATH 12000002
  17. #define OS_NAME 12000004
  18. #define OS_LOCALE_LANGUAGE 12000005
  19. #define OS_SYSTEM_PATH 22000002
  20. // typedef struct BOOT_MGR{
  21. //    
  22. // };
  23. void    DisplayOSNodeInfo(HKEY hkeyObjects ,
  24.                           LPCSTR OsGUIDName)
  25. {
  26.     ULONG xret ; 
  27.         CHAR xxName[100];
  28.         
  29.         HKEY hkeyOS ; 
  30.         sprintf(xxName , "%s//Elements//%u" , OsGUIDName , OS_BOOTLOADER_PATH );
  31.         xret = RegOpenKey(hkeyObjects , xxName , &hkeyOS );
  32.         if (xret != ERROR_SUCCESS)
  33.         {
  34.             printf("error open Key :%s , err = %u/n" , xxName , xret);
  35.         }
  36.         else
  37.         {
  38.             ULONG Type , retlen = 100; 
  39.             CHAR OSBootLoaderPath[100];
  40.             xret = RegQueryValueEx(hkeyOS , "Element" , 0 , &Type , (LPBYTE)OSBootLoaderPath , &retlen );
  41.             if (xret != ERROR_SUCCESS)
  42.             {
  43.                 printf("error query value key , err = %u/n", xret);
  44.             }
  45.             else
  46.             {
  47.                 printf("OsBootLoader Path :%s/n" , OSBootLoaderPath);
  48.             }
  49.             RegCloseKey(hkeyOS);
  50.         }
  51.         sprintf(xxName , "%s//Elements//%u" , OsGUIDName , OS_NAME  );
  52.         
  53.         
  54.         xret = RegOpenKey(hkeyObjects , xxName , &hkeyOS );
  55.         
  56.         if (xret != ERROR_SUCCESS)
  57.         {
  58.             printf("error open Key :%s , err = %u/n" , xxName , xret);
  59.             
  60.             
  61.         }
  62.         else
  63.         {
  64.             ULONG Type , retlen = 100; 
  65.             CHAR OsName[100];
  66.             
  67.             xret = RegQueryValueEx(hkeyOS , "Element" , 0 , &Type , (LPBYTE)OsName , &retlen );
  68.             if (xret != ERROR_SUCCESS)
  69.             {
  70.                 printf("error query value key , err = %u/n", xret);
  71.             }
  72.             else
  73.             {
  74.                 printf("OS Name :%s/n" , OsName);
  75.                 
  76.             }
  77.             RegCloseKey(hkeyOS);
  78.         }
  79.         sprintf(xxName , "%s//Elements//%u" , OsGUIDName , OS_LOCALE_LANGUAGE  );
  80.         
  81.         
  82.         xret = RegOpenKey(hkeyObjects , xxName , &hkeyOS );
  83.         
  84.         if (xret != ERROR_SUCCESS)
  85.         {
  86.             //printf("error open Key :%s , err = %u/n" , xxName , xret);
  87.             printf("Locale Language : N/A/n");
  88.             
  89.         }
  90.         else
  91.         {
  92.             ULONG Type , retlen = 100; 
  93.             CHAR OsLocale[100];
  94.             
  95.             xret = RegQueryValueEx(hkeyOS , "Element" , 0 , &Type , (LPBYTE)OsLocale , &retlen );
  96.             if (xret != ERROR_SUCCESS)
  97.             {
  98.                 printf("error query value key , err = %u/n", xret);
  99.             }
  100.             else
  101.             {
  102.                 printf("Os Locale Language :%s/n" , OsLocale);
  103.                 
  104.             }
  105.             RegCloseKey(hkeyOS);
  106.         }
  107.         sprintf(xxName , "%s//Elements//%u" , OsGUIDName , OS_SYSTEM_PATH    );
  108.         
  109.         
  110.         xret = RegOpenKey(hkeyObjects , xxName , &hkeyOS );
  111.         
  112.         if (xret != ERROR_SUCCESS)
  113.         {
  114.         //    printf("error open Key :%s , err = %u/n" , xxName , xret);
  115.             printf("Os System Path :N/A/n");    
  116.             
  117.         }
  118.         else
  119.         {
  120.             ULONG Type , retlen = 100; 
  121.             CHAR OsSystemPath[100];
  122.             
  123.             xret = RegQueryValueEx(hkeyOS , "Element" , 0 , &Type , (LPBYTE)OsSystemPath , &retlen );
  124.             if (xret != ERROR_SUCCESS)
  125.             {
  126.                 printf("error query value key , err = %u/n", xret);
  127.             }
  128.             else
  129.             {
  130.                 printf("Os System Path :%s/n/n" , OsSystemPath);
  131.                 
  132.             }
  133.             RegCloseKey(hkeyOS);
  134.         }
  135.         return ; 
  136. }
  137. BOOL    ConnectBootMgr()
  138. {
  139.     HKEY hkey ; 
  140.     ULONG xret ; 
  141.     xret = RegOpenKey(HKEY_LOCAL_MACHINE , "BCD00000000" , &hkey);
  142.     if (xret != ERROR_SUCCESS)
  143.     {
  144.         printf("open bcd main key failed , err = %u/n" , xret);
  145.         return 3 ;
  146.     }
  147.     ULONG Index = 0 ;
  148.     CHAR KeyName[100] = "";
  149.     ULONG uret = ERROR_SUCCESS ; 
  150.     BOOL    bFind = FALSE ; 
  151.     while(uret == ERROR_SUCCESS)
  152.     {
  153.         if (!stricmp(KeyName , "Objects"))
  154.         {
  155.             bFind = TRUE ; 
  156.             break ; 
  157.         }
  158.         uret = RegEnumKey(hkey , Index , KeyName , 100) ; 
  159.         Index ++ ; 
  160.     }
  161.     if (!bFind)
  162.     {
  163.         RegCloseKey(hkey);
  164.         printf("cannot found BCDMgr->Objects!/n");
  165.         return FALSE ;
  166.     }
  167.     
  168.     HKEY hkeyObject ; 
  169.     xret = RegOpenKey(hkey , KeyName , &hkeyObject) ; 
  170.     
  171.     if (xret != ERROR_SUCCESS)
  172.     {
  173.         printf("error open BCDMgr->Objects! err = %u/n" , xret);
  174.         RegCloseKey(hkey);
  175.         return FALSE;
  176.     }
  177.     Index = 0 ; 
  178.     uret = ERROR_SUCCESS ;
  179.     bFind = FALSE ; 
  180.     RegCloseKey(hkey);
  181.     while(uret == ERROR_SUCCESS)
  182.     {
  183.         uret = RegEnumKey(hkeyObject , Index , KeyName , 100) ; 
  184.         if (uret == ERROR_SUCCESS)
  185.         {
  186.             CHAR DescObject[100];
  187.             HKEY hkeyDesc ; 
  188.             sprintf(DescObject , "%s//%s" , KeyName , "Description");
  189.             xret = RegOpenKey(hkeyObject , DescObject , &hkeyDesc)  ;
  190.             if ( xret != ERROR_SUCCESS)
  191.             {
  192.                 printf("error open Object Description , err = %u/n" , xret);
  193.                 RegCloseKey(hkeyObject);
  194.                 RegCloseKey(hkey);
  195.                 return FALSE ;
  196.             }
  197.             ULONG value ,type ,retlen = sizeof(ULONG); 
  198.             xret = RegQueryValueEx(hkeyDesc , "Type" , 0 , &type ,  (LPBYTE)&value , &retlen) ; 
  199.             if (xret  !=ERROR_SUCCESS)
  200.             {
  201.                 printf("error query object description type err = %u/n" , xret);
  202.                 RegCloseKey(hkeyDesc);
  203.                 RegCloseKey(hkeyObject);
  204.                 RegCloseKey(hkey);
  205.                 return FALSE ;
  206.             }
  207.             if (value == BOOT_MGR_TYPE)
  208.             {
  209.                 printf("BootMgr Object GUID = %s/n/n" , KeyName);
  210.                 bFind = TRUE ; 
  211.                             
  212.                 break ; 
  213.             }
  214.             else
  215.             {
  216.                 RegCloseKey(hkeyDesc);
  217.             }
  218.         }
  219.         Index ++ ; 
  220.     }
  221.     CHAR ElementName[100];
  222.     HKEY htemp ; 
  223.     sprintf(ElementName , "%s//Elements//%u" , KeyName , BOOT_MGR_NAME_ELEMENTS);
  224.     xret = RegOpenKey(hkeyObject , ElementName , &htemp );
  225.     if (xret != ERROR_SUCCESS)
  226.     {
  227.         printf("error open Elements:BOOT_MGR_NAME_ELEMENTS Key :%s , err = %u/n" , ElementName , xret);
  228.     }
  229.     else
  230.     {
  231.         CHAR BootMgrName[100];
  232.         ULONG size = 100 , Type ; 
  233.         xret= RegQueryValueEx(htemp , "Element" , 0 , &Type ,(LPBYTE)BootMgrName , &size) ; 
  234.         if (xret != ERROR_SUCCESS)
  235.         {
  236.             printf("error query element value of BOOT_MGR_NAME_ELEMENTS  err= %u/n" , xret);
  237.         }
  238.         else
  239.         {
  240.             printf("BootMgr Name : %s/n/n" , BootMgrName);
  241.         }
  242.         RegCloseKey(htemp);
  243.     }
  244.     sprintf(ElementName , "%s//Elements//%u" , KeyName , BOOT_MGR_LOCAL);
  245.     
  246.     xret = RegOpenKey(hkeyObject , ElementName , &htemp );
  247.     if (xret != ERROR_SUCCESS)
  248.     {
  249.         printf("error open Elements:BOOT_MGR_LOCAL Key :%s , err = %u/n" , ElementName , xret);
  250.     }
  251.     else
  252.     {
  253.         CHAR Local[100];
  254.         ULONG size = 100 , Type ; 
  255.         
  256.         xret= RegQueryValueEx(htemp , "Element" , 0 , &Type ,(LPBYTE)Local , &size) ; 
  257.         
  258.         if (xret != ERROR_SUCCESS)
  259.         {
  260.             printf("error query element value of BOOT_MGR_LOCAL  err= %u/n" , xret);
  261.         }
  262.         else
  263.         {
  264.             printf("Locale Language : %s/n/n" , Local);
  265.         }
  266.         RegCloseKey(htemp);
  267.         
  268.     }    
  269.     sprintf(ElementName , "%s//Elements//%u" , KeyName , BOOT_MGR_PTR_TO_DEFULT_OS );
  270.     
  271.     xret = RegOpenKey(hkeyObject , ElementName , &htemp );
  272.     if (xret != ERROR_SUCCESS)
  273.     {
  274.         printf("error open Elements:BOOT_MGR_PTR_TO_DEFULT_OS  Key :%s , err = %u/n" , ElementName , xret);
  275.     }
  276.     else
  277.     {
  278.         CHAR DefaultOS[100];
  279.         ULONG size = 100 , Type ; 
  280.         
  281.         xret= RegQueryValueEx(htemp , "Element" , 0 , &Type ,(LPBYTE)DefaultOS , &size) ; 
  282.         
  283.         if (xret != ERROR_SUCCESS)
  284.         {
  285.             printf("error query element value of BOOT_MGR_PTR_TO_DEFULT_OS  err= %u/n" , xret);
  286.         }
  287.         else
  288.         {
  289.             printf("DefaultOS GUID : %s/n/n" , DefaultOS);
  290.         }
  291.         RegCloseKey(htemp);
  292.         
  293.     }
  294.     sprintf(ElementName , "%s//Elements//%u" , KeyName , BOOT_MGR_PTR_TO_DEFULT_REMUSE );
  295.     
  296.     xret = RegOpenKey(hkeyObject , ElementName , &htemp );
  297.     if (xret != ERROR_SUCCESS)
  298.     {
  299.         printf("error open Elements:BOOT_MGR_PTR_TO_DEFULT_REMUSE  Key :%s , err = %u/n" , ElementName , xret);
  300.     }
  301.     else
  302.     {
  303.         CHAR DefaultResume[100];
  304.         ULONG size = 100 , Type ; 
  305.         
  306.         xret= RegQueryValueEx(htemp , "Element" , 0 , &Type ,(LPBYTE)DefaultResume , &size) ; 
  307.         
  308.         if (xret != ERROR_SUCCESS)
  309.         {
  310.             printf("error query element value of BOOT_MGR_PTR_TO_DEFULT_REMUSE  err= %u/n" , xret);
  311.         }
  312.         else
  313.         {
  314.             printf("Default Resume GUID : %s/n/n" , DefaultResume);
  315.             DisplayOSNodeInfo(hkeyObject , DefaultResume);
  316.         }
  317.         RegCloseKey(htemp);
  318.         
  319.     }
  320.     sprintf(ElementName , "%s//Elements//%u" , KeyName , BOOT_MGR_BOOT_OS_LIST  );
  321.     
  322.     xret = RegOpenKey(hkeyObject , ElementName , &htemp );
  323.     if (xret != ERROR_SUCCESS)
  324.     {
  325.         printf("error open Elements:BOOT_MGR_BOOT_OS_LIST  Key :%s , err = %u/n" , ElementName , xret);
  326.     }
  327.     else
  328.     {
  329.         BYTE OSList[1000];
  330.         PBYTE lpOsList = OSList ; 
  331.         ULONG size = 1000 , Type ; 
  332.         
  333.         xret= RegQueryValueEx(htemp , "Element" , 0 , &Type ,(LPBYTE)OSList , &size) ; 
  334.         
  335.         if (xret != ERROR_SUCCESS)
  336.         {
  337.             printf("error query element value of BOOT_MGR_BOOT_OS_LIST    err= %u/n" , xret);
  338.         }
  339.         else
  340.         {
  341.             LPCSTR OsGUIDName  = (LPCSTR)lpOsList ; 
  342.             ULONG OsIndex = 0 ;
  343.             printf("SystemOS List:/n/n");
  344.             while((ULONG)OsGUIDName+1 < (ULONG)lpOsList + size)
  345.             {
  346.                 printf("OS[%u] : GUID = %s/n/n", OsIndex , OsGUIDName);
  347.                 DisplayOSNodeInfo(hkeyObject , OsGUIDName )    ;
  348.                 OsGUIDName = (LPCSTR)((ULONG)OsGUIDName + strlen(OsGUIDName) + 1 ); 
  349.                 OsIndex ++ ; 
  350.             }
  351.             
  352.         }
  353.         RegCloseKey(htemp);
  354.         
  355.     }
  356.     sprintf(ElementName , "%s//Elements//%u" , KeyName , BOOT_MGR_PTR_TO_MEMTEST  );
  357.     
  358.     xret = RegOpenKey(hkeyObject , ElementName , &htemp );
  359.     if (xret != ERROR_SUCCESS)
  360.     {
  361.         printf("error open Elements:BOOT_MGR_PTR_TO_MEMTEST  Key :%s , err = %u/n" , ElementName , xret);
  362.     }
  363.     else
  364.     {
  365.         CHAR MemTest[100];
  366.         ULONG size = 100 , Type ; 
  367.         
  368.         xret= RegQueryValueEx(htemp , "Element" , 0 , &Type ,(LPBYTE)MemTest , &size) ; 
  369.         
  370.         if (xret != ERROR_SUCCESS)
  371.         {
  372.             printf("error query element value of BOOT_MGR_PTR_TO_MEMTEST    err= %u/n" , xret);
  373.         }
  374.         else
  375.         {
  376.             printf("BootMemTest GUID : %s/n/n" , MemTest);
  377.             DisplayOSNodeInfo(hkeyObject , MemTest);
  378.         }
  379.         RegCloseKey(htemp);
  380.         
  381.     }
  382.     sprintf(ElementName , "%s//Elements//%u" , KeyName , BOOT_MGR_WAIT_TIME  );
  383.     
  384.     xret = RegOpenKey(hkeyObject , ElementName , &htemp );
  385.     if (xret != ERROR_SUCCESS)
  386.     {
  387.         printf("error open Elements:BOOT_MGR_WAIT_TIME  Key :%s , err = %u/n" , ElementName , xret);
  388.     }
  389.     else
  390.     {
  391.         LARGE_INTEGER WaitTime; 
  392.         ULONG size = 8, Type ; 
  393.         
  394.         xret= RegQueryValueEx(htemp , "Element" , 0 , &Type ,(LPBYTE)&WaitTime , &size) ; 
  395.         
  396.         if (xret != ERROR_SUCCESS)
  397.         {
  398.             printf("error query element value of BOOT_MGR_WAIT_TIME    err= %u/n" , xret);
  399.         }
  400.         else
  401.         {
  402.             printf("Boot Menu Wait Time : %I64u second(s)/n/n" , WaitTime.QuadPart);
  403.         }
  404.         RegCloseKey(htemp);
  405.         
  406.     }
  407.     RegCloseKey(hkeyObject);
  408.     RegCloseKey(hkey);
  409. //    strcpy(BootName ,KeyName);
  410.     return TRUE ;
  411. }
  412. int main(int argc, char* argv[])
  413. {
  414.     HKEY hkey ; 
  415.     if (RegOpenKey(HKEY_LOCAL_MACHINE,"BCD00000000" , &hkey) != ERROR_SUCCESS)
  416.     {
  417.         MessageBox(GetDesktopWindow() , "Need admin privilege!" , "Error" , MB_OK|MB_ICONWARNING);
  418.         return 0;
  419.     }
  420.     RegCloseKey(hkey);
  421.     printf("Windows Vista BootMgr Demo/n"
  422.         "By MJ0011 2008-7-15/n"
  423.         "/n1.Display BootMgr config/n/n");
  424.     ULONG id = 0 ; 
  425.     fflush(stdin);
  426.     scanf("%u" , &id);
  427.     if (id == 1 )
  428.     {
  429.         ConnectBootMgr();
  430.         system("pause");
  431.     }
  432.     return 0 ;
  433. }
山区道路边坡落石隐患检测数据集VOC+YOLO格式241张1类别.md 【重要提示】本页面仅为资源介绍,不含外部下载地址 亲爱的 优快云 用户: 感谢你浏览本资源页面,在这里提前向大家说明相关情况,避免后续产生误解。本资源我设置的初衷是 0 积分免费分享文档介绍,希望可以无偿给到有需要的朋友。但 优快云 平台存在自动调控机制,系统会根据资源下载热度、文件体积、平台规则等因素,自动修改资源所需下载积分,页面显示为 1 积分、2 积分或更高积分都属于平台自动调整结果,并非我手动修改设置,我没有权限自主锁定积分数值。 如果你打开页面后,发现下载所需积分不为 0,请务必谨慎考虑是否下载。一旦你支付积分完成下载,后续遇到资源内容和描述不符、文件损坏等问题,我无法承担对应的积分损失,也没有渠道为你办理积分退还。在此强烈建议,只有页面明确显示 0 积分的时候,再进行下载操作。 同时特别说明:这份资源介绍文案里,没有附带任何外部下载地址。资源本身是通过 优快云 官方上传通道上传的附件,正常情况下直接点击页面自带的下载按钮即可获取文件。页面找不到外部下载链接属于正常情况,并非资源缺失。 如果因为平台积分显示异常,导致你被扣取积分,积分退款、积分异常相关问题,请直接联系 优快云 官方客服咨询处理。平台规则由官方制定,我无法干预积分变动,望各位理解。 立即下载

相关推荐

HFSS求解器背后的数学原理:从麦克斯韦方程到S参数计算

本文深入解析了Ansys HFSS求解器的数学原理,从麦克斯韦方程出发,详细介绍了模式驱动求解(Driven Solution)和本征模求解(Eigenmode)等核心算法。通过有限元方法和模式匹配技术,HFSS将电磁场问题转化为矩阵方程求解,实现S参数计算和场分布分析,为工程师提供精确的电磁仿真工具。

weixin_28314575的博客 467

C++ 入门笔记(十七):list 入门 —— 为什么 list 不能 sort?

第17课:用大白话讲清 list 的双向链表结构、哨兵头、push_back 四步、迭代器封装、merge 与 splice 的区别,以及 vector 排序为什么常比 list 快。

wo_jack的博客 242

本地大模型部署实战:LM Studio与Ollama的易用性与性能深度评测

本文对两款主流本地大模型部署工具LM Studio和Ollama进行了深度评测。LM Studio凭借图形化界面和内置模型库,为新手提供了开箱即用的便捷体验,并支持OpenAI兼容API,易于生态集成。Ollama则以命令行驱动,轻量高效,凭借其原生API和Modelfile自定义能力,在自动化集成和性能方面表现突出。文章从易用性、模型生态、性能及扩展性多维度对比,帮助用户根据自身技术背景和使用场景做出最佳选择。

weixin_29039773的博客 529

list

的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。,因此反向迭代器的实现可以借助正向迭代器,即:反向迭代器内部可以包含一个正向迭代器,对正向迭代器的接口进行包装即可。是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。迭代到该位置,在这段位置上迭代需要线性的时间开销;最大的缺陷是不支持任意位置的随机访问,比如:要访问。还需要一些额外的空间,以保存每个节点的相关联信息。个元素,必须从已知的位置。

xie0510_的博客 287

Air780E模组AT指令实战:5分钟搞定MQTT连接EMQX服务器(附完整代码)

本文详细介绍了如何使用Air780E 4G模组通过AT指令快速连接MQTT服务器。从硬件接线、网络注册到MQTT连接配置,提供了完整的实战步骤和代码示例,帮助开发者快速实现物联网设备的数据上报与远程通信。

wdx012345的博客 743

Ubuntu20.04配置PX4环境启动或编译jmavsim 出现的错误及解决办法

错误1:ant命令未找到

Iamsonice的博客 8856

【C++】【STL】list_OJ题

本文系统解析了8道C++链表经典OJ题,按“算数操作”与“指针重连”分为两组,强调指针操作与数据结构解耦的重要性。通过手写ListNode、std::list及带头双向循环链表三类载体验证算法普适性,重点剖析空链、单节点、全相同值等6类边界情况,并给出统一编译与调试方案(g++11 + -Wall -O2),确保零告警、可追踪。所有题目时间复杂度均为O(N),常数差异源于遍历次数与操作开销,代码实现兼顾正确性与面试可用性。

这里是Cocatrice的博客,感谢大家一直以来的支持和鼓励,如果对C/C++方向感兴趣的话,可以通过主页的微信名片加Cocatrice的好友,也可以通过邮箱:Chen31980094@163.com 联系,一同加油! 462

SSD训练自定义数据集实战:VOC格式标注与模型调参技巧

本文详细介绍了如何使用SSD模型训练自定义VOC格式数据集,包括数据标注工具选择、VOC数据集目录结构规范、数据集划分方法以及模型调参技巧。通过实战案例演示了SSD源码的关键修改点和训练参数优化策略,帮助开发者高效实现目标检测任务。

php55的博客 563

Redis 数据类型详解:Hash 哈希与 List 列表

大 key 指单个 key 对应的 value 过大(如 Hash 字段数极多、List 元素极多)。危害包括:单次全量命令(

2303_77004089的博客 115

通俗易懂的Harris 角点检测

点击上方“3D视觉工坊”,选择“星标”干货第一时间送达Harris 角点检测 认为特征点具有局部差异性。如何描述“特征点具有局部差异性”:以每一个点为中心,取一个窗口,窗口大小为5*5...

3D视觉工坊 1474

【2026年阿里巴巴集团暑期实习- 4月25日-算法岗-第二题- 矩阵计数】(题目+思路+Java&C++&Python解析+在线测试)

摘要: 给定两个非负整数序列a和b,构造n×m矩阵C,其中C[i][j]=a[i]×b[j]。统计矩阵中元素≥k的数量。解法是先对数组b排序,然后对于每个a[i],若k=0则直接累加m;若a[i]=0且k>0则跳过;否则计算需要的最小b[j]值,在排序后的b中使用二分查找确定满足条件的元素数量。时间复杂度为O((n+m)log m),空间复杂度O(1)。代码实现了排序和二分查找的高效组合。

m0_73659489的博客 65

【C++】【STL】list

list 是带头结点的双向循环链表,通过哨兵位消除首尾边界判断,实现任意位置插入删除的常数时间复杂度。其节点独立分配,不支持随机访问,迭代器仅支持前后移动。与 vector 对比,list 在中间插入/删除时更高效,但遍历缓存命中率低;vector 适合随机访问和连续遍历,但头部操作代价高。二者在内存布局、访问效率与适用场景上形成互补。

这里是Cocatrice的博客,感谢大家一直以来的支持和鼓励,如果对C/C++方向感兴趣的话,可以通过主页的微信名片加Cocatrice的好友,也可以通过邮箱:Chen31980094@163.com 联系,一同加油! 684

利用dpabi和restplus提取ROI灰质体积学习笔记

目录前言一、数据准备二、利用dpabi提取ROI灰质体积三、restplus提取ROI灰质体积 前言 我利用SPM/CAT12进行灰质、白质、脑脊液分割之后分别已经得到各自的图像文件,在全脑水平已经做了统计分析。如果还想要进一步进行ROI的统计分析或者与量表等临床资料做相关分析,就需要提取ROI灰质体积。几个月没动过这数据了,突然心血来潮想学一下如何提取ROI灰质体积,以此篇博客记录我的提取ROI灰质体积学习过程。提取ROI灰质体积的方法及软件有许多种,本人尝试了dpabi和restplus。 一、数据准备

weixin_52073820的博客 9225

Java 集合框架(List、Set、Map)与常用基础

本文整理Java集合框架核心知识,涵盖集合体系、Collection接口API、List(ArrayList、LinkedList、Vector)、Set(HashSet、TreeSet)、Map(HashMap、TreeMap、Hashtable)实现类原理、泛型、增强for循环、可变参数与工具类,并附核心易错点速查表。

既然你都点开这里了,那可以给我点个关注吗?可以吗?可以吗? 491

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Bugku 326 Baby-heap1 题解:glibc 2.23 堆溢出到 FSOP 劫持 _IO_list_all(附完整 exp)

为什么 FSOP 在 2.23 这么好用?glibc 2.23 的_IO_FILE虚表调用没有 vtable 合法性检查是 2.24 才加入的),只要能把指向自己伪造的 FILE,就能让__overflow槽位指向任意函数。exit()一定会走因此把_mode置 0、置 1、置 0,就能进入;把fp首地址写成/bin/shsystem(fp)的参数就齐了。为什么用 fastbin attack 而不是?2.23 没有 tcache,fastbin 的fd。

kingx3的博客 229

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

List(下):LPOP / RPOP、BLPOP / BRPOP 与 LINDEX、LINSERT

这是《Redis C++ 实战笔记》系列的第 07 篇。上一篇是往列表里放,这一篇是往外拿——包括那个会"等"的弹出。

wbs_scy的博客 118

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

CListCtrl 第一列为什么不能居中

/ 你满怀期待写下这段代码m_list.InsertColumn(0, _T("序号"), LVCFMT_CENTER, 80);m_list.InsertColumn(1, _T("名称"), LVCFMT_LEFT, 160);m_list.InsertColumn(2, _T("数值"), LVCFMT_RIGHT, 100);运行后傻眼:第 1、2 列对齐完全正常,唯独索引 0 这一列,无论你写还是,文字永远靠左。反复调试、怀疑自己参数写错、怀疑扩展样式、怀疑资源模板,折腾半小时 ——

谢谢大家的关注和点赞!这里只有纯纯的知识干货,没有一句废话。希望能实实在在帮到大家~要是觉得有用,别忘了给我点支持哟,你 266

To-Do List 的「修改」功能与 CSS 定位

买牛奶</td><td index="1">写作业</td><td index="2">跑步

2401_89953644的博客 268

一个链表(Linked List)--为什么要用链表--deepseek

数组(如你定义的大盘子就像你在 FPGA 里例化了一块深度为 2500 的 BRAM。它必须是一块连续的、完整的内存。如果内存里全是碎片,凑不出 2500 个连续空位,数组就建立不起来。链表(Linked List)就像一堆散落在大街小巷的小仓库,每个仓库大小不固定,彼此不挨着。但是,每个仓库的门口都贴了一张小纸条,纸条上写着“下一个仓库的地址”。我们来画个图,这就是链表的核心——节点(Node)text。

AlibabaApple的博客 180

【C++初阶】list使用及相关实现,思路顺滑流畅!

list使用及相关实现

Severus_black的博客 221

DOM增删改查与TodoList实战

拿到一个元素后,不用重新 ,可以直接通过它身上的关系属性找到亲戚。       parent         │   ┌──────┴──────┐ prevSibling   nextSibling         │       self         │   ┌───

2401_89953644的博客 218

List(上):LPUSH / RPUSH 与 LRANGE

这是《Redis C++ 实战笔记》系列的第 06 篇。String 讲完了,进入第二种类型:List。它是一串有顺序、可以重复的值,两头都能进出。

wbs_scy的博客 253

TypeError: must be str, not list

【代码】TypeError: must be str, not list。

Forerunner and Successor 先駆者と後継者 56

【Java】List

ArrayList使用。

2503_92107148的博客 19

Java Arrays.asList 常见坑详解|UnsupportedOperationException、数组联动、基本类型 bug

解析 Arrays.asList 常见开发陷阱,演示 UnsupportedOperationException、底层数组引用共享、基本类型数组问题,区分 Arrays 内部 ArrayList 与 java.util.ArrayList,给出数组转 List 的各种场景正确代码。

weixin_42617033的博客 494
上一篇: MS08-066 AFD.sys Local Privilege Escalation Exploit (POC)
下一篇: IAT HOOK 代码注入非DLL
iiprogram
博客等级 码龄25年 1068粉丝 1515原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值