mirror of
https://github.com/Estom/notes.git
synced 2026-11-06 10:17:23 +08:00
笔试题
This commit is contained in:
16
code_segment/b.cpp
Normal file
16
code_segment/b.cpp
Normal file
@@ -0,0 +1,16 @@
|
||||
#include<iostream>
|
||||
#include<vector>
|
||||
#include<algorithm>
|
||||
using namespace std;
|
||||
|
||||
|
||||
int main(){
|
||||
|
||||
vector<int> vec{1,2,3};
|
||||
for_each(vec.begin(),vec.end(), [&](int &a){
|
||||
a++;
|
||||
});
|
||||
for(auto a:vec){
|
||||
cout<<a<<endl;
|
||||
}
|
||||
}
|
||||
21
code_segment/xiaoyu3.cpp
Normal file
21
code_segment/xiaoyu3.cpp
Normal file
@@ -0,0 +1,21 @@
|
||||
#include<iostream>
|
||||
#include<vector>
|
||||
|
||||
using namespace std;
|
||||
|
||||
int change(int amount, vector<int>& coins) {
|
||||
vector<int> dp(amount + 1);
|
||||
dp[0] = 1;
|
||||
for (int& coin : coins) {
|
||||
for (int i = coin; i <= amount; i++) {
|
||||
dp[i] += dp[i - coin];
|
||||
}
|
||||
}
|
||||
return dp[amount];
|
||||
}
|
||||
int main(){
|
||||
|
||||
vector<int> vec{1,5,10,20,50,100};
|
||||
cout<<change(100,vec)<<endl;
|
||||
|
||||
}
|
||||
52
code_segment/xiaoyu4.cpp
Normal file
52
code_segment/xiaoyu4.cpp
Normal file
@@ -0,0 +1,52 @@
|
||||
#include<iostream>
|
||||
#include<vector>
|
||||
#include<algorithm>
|
||||
#include<sstream>
|
||||
#include<map>
|
||||
using namespace std;
|
||||
|
||||
int main(){
|
||||
string s = "2\n7\n4 -4 -2 -1 -1 -1 -1\n5\n1 2 3 4 5\n";
|
||||
istringstream cin(s);
|
||||
// cin=is;
|
||||
int t=0;
|
||||
cin>>t;
|
||||
while(t--){
|
||||
int n;
|
||||
cin>>n;
|
||||
vector<int> vec;
|
||||
while(n--){
|
||||
int x;
|
||||
cin>>x;
|
||||
vec.push_back(x);
|
||||
}
|
||||
// sort(vec.begin(),vec.end());
|
||||
vector<int> sum_vec(vec.size(),0);
|
||||
vector<int> num_vec(vec.size(),0);
|
||||
multimap<int,int> m;
|
||||
|
||||
int sum=0,num=0;
|
||||
for(int i=0;i<vec.size();i++){
|
||||
if(vec[i]>=0){
|
||||
sum+=vec[i];
|
||||
num++;
|
||||
}
|
||||
else{
|
||||
m.insert(pair<int,int>(vec[i],i));
|
||||
}
|
||||
sum_vec[i]=sum;
|
||||
num_vec[i]=num;
|
||||
}
|
||||
for(auto a=m.rbegin();a!=m.rend();a++){
|
||||
if(sum_vec[a->second]+a->first>0){
|
||||
for(int i=a->second;i<vec.size();i++){
|
||||
sum_vec[i]+=a->first;
|
||||
num_vec[i]++;
|
||||
}
|
||||
}
|
||||
cout<<sum_vec[vec.size()-1]<<" ";
|
||||
}
|
||||
cout<<endl;
|
||||
cout<<num_vec[vec.size()-1]<<endl;
|
||||
}
|
||||
}
|
||||
38
code_segment/xiaoyu5.cpp
Normal file
38
code_segment/xiaoyu5.cpp
Normal file
@@ -0,0 +1,38 @@
|
||||
#include<iostream>
|
||||
#include<vector>
|
||||
#include<algorithm>
|
||||
// #include<sstream>
|
||||
using namespace std;
|
||||
|
||||
struct Node{
|
||||
int val;
|
||||
int pos;
|
||||
Node(int v,int p){
|
||||
val=v;
|
||||
pos=p;
|
||||
}
|
||||
bool operator<(const Node& b){
|
||||
return val<b.val;
|
||||
}
|
||||
};
|
||||
int main(){
|
||||
// string s = "4\n1 2\n2 3\n3 5\n4 3\n";
|
||||
// istringstream cin(s);
|
||||
int N;
|
||||
cin>>N;
|
||||
vector<Node> vec;
|
||||
while(N--){
|
||||
int x,y;
|
||||
cin>>x>>y;
|
||||
vec.push_back(Node(x,1));
|
||||
vec.push_back(Node(x+y+1,-1));
|
||||
}
|
||||
sort(vec.begin(),vec.end());
|
||||
int max_num=0;
|
||||
int num=0;
|
||||
for(auto v:vec){
|
||||
num+=v.pos;
|
||||
max_num=max(num,max_num);
|
||||
}
|
||||
cout<<max_num<<endl;
|
||||
}
|
||||
22
code_segment/xiaoyu5_2.cpp
Normal file
22
code_segment/xiaoyu5_2.cpp
Normal file
@@ -0,0 +1,22 @@
|
||||
#include<iostream>
|
||||
#include<map>
|
||||
using namespace std;
|
||||
|
||||
int main(){
|
||||
int N;
|
||||
cin>>N;
|
||||
map<int,int> m;
|
||||
while(N--){
|
||||
int x,y;
|
||||
cin>>x>>y;
|
||||
m.count(x)?m[x]++:m[x]=1;
|
||||
m.count(x+y+1)?m[x+y+1]--:m[x+y+1]=-1;
|
||||
}
|
||||
int max_num=0;
|
||||
int num=0;
|
||||
for(auto v:m){
|
||||
num+=v.second;
|
||||
max_num=max(num,max_num);
|
||||
}
|
||||
cout<<max_num<<endl;
|
||||
}
|
||||
8
工作日志/2021年9月12日-今日计划.md
Normal file
8
工作日志/2021年9月12日-今日计划.md
Normal file
@@ -0,0 +1,8 @@
|
||||
## 计划
|
||||
|
||||
|
||||
|
||||
## 收获
|
||||
|
||||
|
||||
*
|
||||
@@ -14,7 +14,7 @@
|
||||
在学校里积极参加社团和活动。曾任软微学院科创部干事,参与组织一行代码大赛和程序设计比赛。曾任西工大新闻中心副部长,负责开发新文中心的功能网站,培训技术人员,维护西工大官方微信。
|
||||
|
||||
|
||||
## 4 主要成果
|
||||
## 3 主要成果
|
||||
|
||||
* 两次学校一等奖学金,一次华为奖学金,一次国家励志奖学金,一次电子工业出版社助学金,“优秀共青团员”称号
|
||||
* 2016-2017年连续两届FIRA机器人世界杯SimuRoSot项目国际特等奖(冠军),Air Challenge项目国际一等奖(亚军)
|
||||
@@ -22,18 +22,24 @@
|
||||
* 2019年获得国家级大学生创新项目《基于超宽带定位技术的无人机目标追踪系统》和《基于网络爬虫和数据分析的高校信息整合系统》优秀结题
|
||||
* 获得《面向学生的校园信息交流系统V1.0》《基于scrapy框架的校园信息爬虫系统》《基于网络爬虫和数据分析的高校信息整合系统》计算机软件著作权
|
||||
|
||||
## 3 项目经历
|
||||
## 4 项目经历
|
||||
|
||||
> 项目概述、主要工作、最终成果
|
||||
|
||||
### 竞技策略开发——仿真5VS5SimuRosot(√上传)
|
||||
* 项目概述:15个人的开发团队,长期开发项目,C++、JAVA。工程项目主要包括数据处理模块、前场、后场、边路、底线、特殊策略、定位球策略等,主要用于参加5V5 simurosot的国内比赛和国外比赛。
|
||||
* 主要工作:负责开发前场的相关策略,主要包括策略选择模块(优势前场、保守前场、边路前场)、角色选择和切换模块(角色的稳定性,进入退出分开控制。)、目标计算模块(保持相对的阵型,减少阵型的抖动)、移动跑位模块、射门模块。使用PID控制方法对机器人控制,增强了前场的稳定性。使用JAVA为团队开发了数据测试平台,实现了对数据仿真、策略测试、可视化。。搭建团队开发的SVN版本控制系统,方便整个团队项目开发和维护。
|
||||
* 关键技术:开发测试平台主要使用java swing开发跨平台图形界面,提供了一系列GUI组件。主要包括数据导入模块、动态演示模块、数据显示模块。使用java io random_accessfile读取并解析file文件。使用java thread实现数据加载与数据展示的并行过程。通过事件监听与响应机制,实现对数据仿真动态演示过程的控制,包括仿真速度调节和仿真进度调节。使用javadoc生成标准的java文档供后续开发使用,方便开发维护。
|
||||

|
||||
### 竞技策略开发——仿真5VS5SimuRosot
|
||||
* 项目概述:15个人的开发团队,长期开发项目,C++、JAVA,主要用于参加5V5 simurosot的国内比赛和国外比赛。工程主要采用分层架构,
|
||||
* 第一层是运动模型,包括球的运动模型和轮式机器人的运动模型。控制机器人的轮速,完成前进、后退、旋转等基本动作。
|
||||
* 第二层是跑位动作,给定目标点,机器人通过基本动作,完成避障行为,以最快的速度到达目标点。
|
||||
* 第三层是击球动作,在跑位的基础上,考虑球的运动状态,完成击球过程。
|
||||
* 第四层是策略控制,用于协调多个机器人,完成统一目标的动作。进行角色选择,向前场包括sender、defender、helper等角色。然后目标计算,分别计算每个机器人的目标点,选择机器人的运动方法。最后是策略切换控制,为了增强策略的稳定性,还包括策略的进入和退出控制。
|
||||
* 第五层是策略选择,包括态势评估,通过过去和当前的机器人和球的状态完成一系列态势分析,选择进入前场、后场、边路、底线等不同的策略中。
|
||||
* 另外还有一些辅助模块,包括日志模块,保存策略数据和运动数据,用于比赛复现和问题排查。态势预测模块,根据过去和当前的状态,预测未来一段时间内的态势,根据运动规律,计算未来球的位置。
|
||||
* 用到了一些基本的设置模式,像单例模式(小球的控制句柄、态势评估类的对象和态势预测的对象)、策略模式(给定统一接口)
|
||||
* 主要工作1:负责开发前场的相关策略,分成很多子策略选择模块(优势前场、保守前场、边路前场)、角色选择和策略切换控制(角色的稳定性,进入退出分开控制。)、目标计算模块(保持相对的阵型,减少阵型的抖动)、移动跑位模块、射门模块。使用PID控制方法对机器人控制,增强了前场的稳定性。
|
||||
* 主要工作2:使用JAVA为团队开发了数据测试平台,实现了对数据仿真、策略测试、可视化。搭建团队开发的SVN版本控制系统,方便整个团队项目开发和维护。开发测试平台主要使用java swing开发跨平台图形界面,提供了一系列GUI组件。主要包括数据导入模块、动态演示模块、数据显示模块。使用java io random_accessfile读取并解析file文件。使用java thread实现数据加载与数据展示的并行过程。通过事件监听与响应机制,实现对数据仿真动态演示过程的控制,包括仿真速度调节和仿真进度调节。使用javadoc生成标准的java文档供后续开发使用,方便开发维护。
|
||||
* 最终成果:暑假期间带领团队前往日照参加了2017中国机器人大赛,前往台湾 参加了FIRA机器人世界杯,取得多项冠军。
|
||||
|
||||
### 大创项目——基于网络爬虫和数据分析的高校信息整合系统
|
||||
### 基于网络爬虫和数据分析的高校信息整合系统
|
||||
|
||||
* 项目概述:5个人,Python、MySQL。带领团队申请了《基于超宽带定位技术的无人机目标追踪系统》《基于网络爬虫和数据分析的高校信息整合系统》两个国家级大创项目,后者主要是利用爬虫综合网络信息,搭建web服务器,对数据进行二次处理,使用机器学习算法提供面向用户提供文章推荐功能、标签云索引功能和分类浏览功能,面向信息发布者提供了热点倾向功能、数据分析功能。
|
||||
* 主要工作:项目架构、服务器搭建,包括爬虫模块(数据解析模块xpath、URL获取与去重模块)、服务器模块(MySQL数据库设计、Json数据封装)、Android客户端(数据请求模块HTTP请求、数据展示)、数据处理模块。通过Scrapy完成网络信息爬虫,构建了Mysql数据库,使用Django后端框架和Bootstrap前端框架开发了项目网站,使用大数据的算法对信息分析处理,并将整个项目部署到腾讯云提供的CentOS服务器上。使用Github进行代码管理。
|
||||
@@ -61,14 +67,12 @@
|
||||
* 最终成果:两个国家级大创项目均获得优秀结题。
|
||||
|
||||
|
||||
### 无人机通信和加密
|
||||
### 无人机协同系统
|
||||
|
||||
* 项目概述:无人机加密通信项目开发。
|
||||
* 项目概述:无人机通信和可视化
|
||||
* 主要工作:主要是在Android平台(DJ无人机的地面站android手机开发),使用Java多线程和Socket编程,实现无人机之间的通信连接。主要通过UDP网络通信、心跳测试保持连接、回调处理等方式实现线程通信。在加密通信过程中,使用C++开发加密仿真环境。使用nodejs+electron对通信过程进行可视化。使用网页技术HTML、CSS、JavaScript做前端,使用C++做为本地的后端。通过封装C++通信的代码,提供C++通信接口,供nodejs调用。(代码的封装,接口提供,)
|
||||
* 主要成果:完成实验室项目验收。
|
||||
|
||||
|
||||
|
||||
### TensorFlowIO优化
|
||||
|
||||
* 项目概述:分析TensorFlow源代码,对源代码进行修改重新编译。使用mmap方法,优化TensorFlow数据加载过程中的IO操作。
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
事件驱动?
|
||||
事件响应机制?
|
||||
回调机制
|
||||
异步回调机制
|
||||
并发机制:多线程并发?异步并发?异步IO?
|
||||
Reference in New Issue
Block a user