- 24点游戏算法(c++每日一练)
三少爷的剑!
c++每日一练c++
问题描述:给出4个1-10的数字,通过加减乘除,得到数字为24就算胜利输入:4个1-10的数字。[数字允许重复,但每个数字仅允许使用一次,测试用例保证无异常数字]输出:trueorfalse#include#includeusingnamespacestd;boolis(vectora,intnum,intkey){if(a.size()==0){returnkey==num;}for(inti=
- 每日一练 模拟卷(1)参考答案
「已注销」
#各大编程比赛题目解析c++
2024CCF非专业级别软件能力认证第一轮(CSP-J1)入门级C++语言试题-模拟卷(一)考生注意事项:满分100分。请在答题纸上作答,写在试题纸上的一律无效。不得使用任何电子设备(如计算器、手机、电子词典等)或查阅任何书籍资料。一、单项选择题(共15题,每题2分,共计30分;每题有且有一个正确选项)1.C++语言中,程序在什么阶段对define定义的内容进行替换?()A.链接B.编译C.预处理
- Python真经:筑基开光篇
zzzzjflzdvkk
python开发语言
第一章:灵脉筑基Python真经乃跨三界之法,无论Windows、Linux、MacOSX,抑或云端秘境、移动外域,皆可开辟灵脉,筑基修炼。修士欲入此道,须先探查本命灵台是否已结Python丹种。可于终端秘境中掐诀念咒,输入「python」真言,若有金光浮现,则显其丹种品阶;若无回应,便是灵脉未开,需行筑基之法。第二章:天机阁取经灵脉之源修士当登临「天机阁」此乃Python真经本源之地。阁中藏有最
- C++ 前置递增(Preincrement)和前置递减(Predecrement)
十年一梦实验室
c++算法
我来为你详细讲解前置递增(Preincrement)和前置递减(Predecrement),以及它们与后置形式(Postincrement和Postdecrement)的区别和使用建议。什么是递增和递减运算符?在编程中,递增(increment)和递减(decrement)运算符用于将变量的值增加或减少1。它们有两种形式:前置(Prefix):运算符写在变量前面,例如++i(前置递增)或--i(前
- Linux基础指令详解:掌握Linux系统的必备技能
幻梦织者
linux服务器运维
Linux基础指令详解:掌握Linux系统的必备技能一、Linux基础指令概述二、基础指令详解1.**ls**2.**cd**3.**pwd**4.**mkdir**5.**rmdir**6.**rm**7.**cp**8.**mv**9.**cat**10.**more**和**less**11.**chmod**12.**chown**13.**df**14.**du**15.**ps**16
- 轻松掌握:Milvus向量数据库部署与RAG使用技巧
威研威语
人工智能数据库milvus数据库人工智能RAG
Milvus简介Milvus是一款开源的向量数据库,由Zilliz开发并维护,适合用于机器学习和人工智能领域。是一款专为处理向量查询而设计的数据库,Milvus能够对万亿级向量进行索引。Milvus官网:https://milvus.io/Milvus中文文档:https://www.milvus-io.com/Milvus部署环境准备Linux操作系统Docker19.03或更高版本Docker
- 征程 6 基于 Linux 和 Node-Locked License 配置 DSP 开发环境
自动驾驶算法
说明:该文档以征程6上使用的Q8DSP安装为例,同样的步骤在征程5上使用方法类似只是征程6使用的DSP为VP61.获取所需文件在配置征程6的DSP开发环境前,您需要获取以下文件:标准工具链发布包部分(请联系地平线项目对接人获取)OpenExplorer算法工具链Docker镜像OpenExplorer算法工具链交付包(OE包中提供了大量示例,包括DSP示例)OpenExplorer算法工具链中文文
- C++入门基础------类的介绍
XG丶小哥
C++c++
本文是对C++的一些知识点总结以及自己的理解,建议是对于C有较好的理解或者是学过一些C++的同学使用,可以加深自己的理解!C++基础一、类的定义二、创建类对象三、访问类的成员四、类成员变量和成员函数五、C++类的访问权限六、类的简单封装七、类的构造函数八、C++构造函数初始化列表九、析构函数十、this指针十一、C++中的静态变量十二、静态函数十三、const成员函数一、类的定义类是创建对象的模板
- centos7升级openssh9.8
weixin_43806846
运维
前言处理新发布的CVE-2024-6387关于openssh的漏洞,升级openssh到9.8版本。一、升级准备?确认系统版本[root@CentOS7~]#uname-aLinuxCentOS73.10.0-1160.el7.x86_64#1SMPMonOct1916:18:59UTC2020x86_64x86_64x86_64GNU/Linux[root@CentOS7~]#cat/etc/c
- linux系统的加固,防火墙,弱口令的梳理
weixin_43806846
安全加固
防火墙开启防火墙:systemctlstartfirewalldsystemctlenablefirewalld弱口令opensslrand-base648>/root/.passwd#生成随机密码,保存至/root/.passwd,保存好root密码后,可以删除此文件cat/root/.passwd|passwdroot--stdin#更改root密码禁止root账号远程登录系统,并修改ssh默
- Linux关闭swap分区操作[适用于CDH报警等]
NBA首席形象大使阿坤
大数据运维和开发#大数据集群linux运维hadoop
1.查看swap分区挂载路径(没卵用)swapon-s2.设置配置文件的swap配置echo“vm.swappiness=0”>/etc/sysctl.conf3.设置内存中的swap状态。有时候配置文件为0,但集群或服务仍然使用了swap分区,可能原因就是内存没有同步配置echo“0”>/proc/sys/vm/swappiness4.生效配置sysctl-p5.将/etc/fstab文件中所有
- C++8--赋值运算符重载
大胆飞猪
c++
1.运算符重载C++引入运算符的目的是为了增强代码的可读性。运算符重载是具有特殊函数名的函数,也具有其返回值类型,函数名字以及参数列表,其返回值类型与参数列表与普通的函数相似。函数名字为:关键字operator后面接需要重载的运算符符号函数原型:返回值类型operator操作符(参数列表)注意:不能通过连接其他符号来创建新的操作符:比如operator@重载操作符必须有一个类类型参数用于内置类型的
- C++14--内存管理(new delete)
大胆飞猪
c++
目录1.C++内存管理方式1.1new/delete操作内置类型1.2new和delete操作自定义类型2.operatornew与operatordelete函数3.new和delete的实现原理3.1内置类型3.2自定义类型4.定位new表达式(placement-new)5.malloc/free和new/delete的区别1.C++内存管理方式前言C语言内存管理在C++中可以继续使用,但是
- C++25--lambda表达式
大胆飞猪
c++
目录1.C++98中的一个例子2.lambda表达式3.lambda表达式语法4.函数对象与lambda表达式1.C++98中的一个例子templatestructgreater{booloperator()(Ta,Tb){returna>b;}};intmain(){intarray[]={4,1,8,5,3,7,0,9,2,6};//默认按照小于比较,排出来结果是升序std::sort(arr
- C++26--包装器(function bind)
大胆飞猪
c++
目录function包装器bindfunction包装器function包装器也叫作适配器。C++中的function本质是一个类模板,也是一个包装器。那么我们来看看,我们为什么需要function呢?ret=func(x);//上面func可能是什么呢?那么func可能是函数名?函数指针?函数对象(仿函数对象)?也有可能是//lambda表达式对象?所以这些都是可调用的类型!如此丰富的类型,可能
- C++枚举算法详解
卫青~护驾!
算法数据结构c++青少年编程枚举算法
一、枚举算法核心思想枚举算法是一种通过遍历所有可能情况来解决问题的暴力搜索方法,其核心特点是:全面性:不遗漏任何可能性简单性:逻辑直接易实现低效性:时间复杂度通常较高(O(n^k))适用场景:问题规模有限且可穷举的情况(如数值范围小、维度低)二、经典案例:福尔摩斯密码破解问题描述ABCDE×?=EDCBA其中A,E,?∈[1,9],B,C,D∈[0,9]所有字符互不相同算法实现(6层嵌套循环)fo
- 漂亮玫瑰
煦--晨
存上
#include#include#includeintrosesize=500;inth=-250;structDOT{doublex;doubley;doublez;doubler;doubleg;};boolcalc(doublea,doubleb,doublec,DOT&d){doublej,n,o,w,z;if(c>60){d.x=sin(a*7)*(13+5/(0.2+pow(b*4,4
- C++中栈的用法
冬瓜生鲜
1大学学习的算法
简单记忆,具体详细见:https://blog.csdn.net/qq_20366761/article/details/70053813c++栈的方法的基本用法:push():向栈内压入一个成员;pop():从栈顶弹出一个成员;empty():如果栈为空返回true,否则返回false;top():返回栈顶,但不删除成员;size():返回栈内元素的大小;#include#includeusin
- ollama官方安装包
哈拉少12
人工智能
一、官方安装包基本信息最新版本Windows版:v0.6.0.0(国内镜像版,大小999.8M)Linux版:v0.6.0(官方版,大小1.59G)macOS版:支持通过官网直接下载(版本号与Windows/Linux同步)支持平台桌面端:Windows(Win7及以上)、Linux(x86_64/ARM64)、macOS容器化部署:支持Docker(需配合DockerDesktop)
- nvm的使用汇总
柒柒钏
小知识点安装教程NVM
nvm的使用汇总在Linux中安装nvm使用nvm安装Node.js一些特殊用法总结在Linux中安装nvm运行以下命令,用来下载并执行nvm的安装脚本:curl-o-https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh|bash注意:v0.40.0是截至2023年的最新稳定版本。如果需要其他版本,请替换为对应的版本号。安装
- Linux中如何终止进程?这三种办法要刻在脑子里
wljslmz
Linux技术linux运维服务器
在Linux中,进程是程序运行时的实例。简单来说,每当你启动一个应用(比如Firefox浏览器或一个脚本),系统就会为它创建一个进程,并分配一个唯一的编号——进程ID(简称PID)。通过这个PID,系统知道该如何管理和调度它。但进程并非总是乖乖听话。以下几种情况,可能让你不得不挥起“终结者”之手:无响应:程序卡死,窗口一动不动,怎么点都没反应。资源霸占:某个进程狂吃CPU或内存,让系统慢如蜗牛。任
- TPAMI 2025 | Glissando-Net: 基于单视图的类别级姿态估计与3D重建
小白学视觉
论文解读IEEETPAMI3d深度学习论文解读顶刊论文IEEETPAMI
论文信息Glissando-Net:DeepSinglevIewCategoryLevelPoseeStimationANd3DReconstructionGlissando-Net:基于单视图的类别级姿态估计与3D重建作者:BoSun;HaoKang;LiGuan;HaoxiangLi;PhilipposMordohai;GangHua论文创新点联合估计3D形状和6D姿态:Glissando-N
- C++调用Python程序方法
超级大反派@_@
C++c++python开发语言
前言:在之前做的一个项目中,要使用一段Python的代码。一般来讲可以将Python代码中的功能在C++项目中重构,但是如果Python项目太大,或者这部分是别人写的,自己不清楚整个项目的逻辑,这样重构起来就比较麻烦。这里给出了另外一种实现方法,即利用Python的API使得C++项目可以直接启动Python程序,快速在PC端验证代码功能。急性子可直接看:2.2C++调用python有参有返回值函
- 北本海硕腾讯二面没过,该如何准备才能再战大厂?
程序员yt
面试
今天给大家分享的是一位粉丝的提问,北本海硕腾讯二面没过,该如何准备才能再战大厂?接下来把粉丝的具体提问和我的回复分享给大家,希望也能给一些类似情况的小伙伴一些启发和帮助。同学提问:bg北本海硕两段大厂实习,感觉自己bg其实不错但问题是实习干的都是些crud当时也没意识记录一些更深刻的技术或者架构上的问题,八股又欠背(大致看完了小林codinga和csguilde的c++指北但实际中延伸出来的问题太
- vscode中调试Python和C++的混合代码
destiny44123
vscodepythonc++
文章目录使用流程参考一些差异使用流程参考ExampledebuggingmixedPythonC++inVSCode一些差异这里假设的项目是通过python调用c++的相应共享库(so)文件。首先,新建文件夹.vscode,在其中添加文件配置launch.json.示例如下:{"version":"0.2.0","configurations":[{"name":"(gdb)附加","type":
- C++:std::vector常用函数及用法详解
湫兮之风
c++c++算法开发语言
std::vector是C++标准库中最常用的动态数组容器,提供了丰富的操作方法,支持动态扩展、插入、删除等操作。本文将详细介绍vector的常用函数及其用法,并配合代码示例说明。1.std::vector的基本使用在C++中,vector需要包含头文件:#include示例:#include#includeintmain(){std::vectorvec={1,2,3,4,5};for(intn
- 2024年最新【Rust指南】快速入门 开发环境 hello world_rust开发是啥(3)
2301_79772893
程序员rust开发语言后端
2、与其他编程语言相比较C/C++性能很好,但是系统类型和内存都不太安全。Java/C#,拥有GC机制,能保证内存安全,特性也优秀,但是性能不行Rust:安全无需GC代码安全高效,易于维护、调试3、Rust特别擅长的领域高性能WebServiceWebAssembly命令行工具网络编程嵌入式设备系统编程4、Rust的用户和案例Google:新操作系统Fuschia,其中Rust代码量约占30%Am
- git自动化部署post-receive无效(转载至segmentfault的sowork回答)
php_M
phpgit
本人在linux服务器下搭建了gitlab,创建项目,git本地推送,都正常。但是服务器上如何才能映射到该项目?通过咨询,得知,需要Git自动化部署。网上找了办法,几乎都是post-receive,但是设置了后也没效果。最终在思否里面一个回答者的办法试了,管用了。如下:安装完git后,git自带有钩子脚本比如我们的仓库是/var/git-repository/myRepo.git//备注:如果找不
- 学习面向对象编程之前的准备工作(二)
笺上山河梦
C++学习c++算法开发语言
综述本次学习的所有知识点如下:/**C++struct使用*//**Filename:StructDemo.cpp*AuthorName:xxx*Date:2025.3.10*Email:xxxxxxxxxxxxxx*Function:DemonstrationtohowtousethestructureofC++.*/#include#includeusingnamespacestd;//结构体
- Linux创建git仓库,并利用post-receive钩子实现自动部署
wpfly2020
linuxgit
一、创建git仓库的用户groupaddgit#出于安全考虑,创建的git用户不能允许SSH登录,只能在git-shell下使用useraddgit-ggit-s/usr/local/git/bin/git-shellpasswdgit二、创建仓库及设置mkdir-p/repo/app1.gitcd/repo/app1.gitgitinit--bare--shared=0770chown-Rgit
- ASM系列四 利用Method 组件动态注入方法逻辑
lijingyao8206
字节码技术jvmAOP动态代理ASM
这篇继续结合例子来深入了解下Method组件动态变更方法字节码的实现。通过前面一篇,知道ClassVisitor 的visitMethod()方法可以返回一个MethodVisitor的实例。那么我们也基本可以知道,同ClassVisitor改变类成员一样,MethodVIsistor如果需要改变方法成员,注入逻辑,也可以
- java编程思想 --内部类
百合不是茶
java内部类匿名内部类
内部类;了解外部类 并能与之通信 内部类写出来的代码更加整洁与优雅
1,内部类的创建 内部类是创建在类中的
package com.wj.InsideClass;
/*
* 内部类的创建
*/
public class CreateInsideClass {
public CreateInsideClass(
- web.xml报错
crabdave
web.xml
web.xml报错
The content of element type "web-app" must match "(icon?,display-
name?,description?,distributable?,context-param*,filter*,filter-mapping*,listener*,servlet*,s
- 泛型类的自定义
麦田的设计者
javaandroid泛型
为什么要定义泛型类,当类中要操作的引用数据类型不确定的时候。
采用泛型类,完成扩展。
例如有一个学生类
Student{
Student(){
System.out.println("I'm a student.....");
}
}
有一个老师类
- CSS清除浮动的4中方法
IT独行者
JavaScriptUIcss
清除浮动这个问题,做前端的应该再熟悉不过了,咱是个新人,所以还是记个笔记,做个积累,努力学习向大神靠近。CSS清除浮动的方法网上一搜,大概有N多种,用过几种,说下个人感受。
1、结尾处加空div标签 clear:both 1 2 3 4
.div
1
{
background
:
#000080
;
border
:
1px
s
- Cygwin使用windows的jdk 配置方法
_wy_
jdkwindowscygwin
1.[vim /etc/profile]
JAVA_HOME="/cgydrive/d/Java/jdk1.6.0_43" (windows下jdk路径为D:\Java\jdk1.6.0_43)
PATH="$JAVA_HOME/bin:${PATH}"
CLAS
- linux下安装maven
无量
mavenlinux安装
Linux下安装maven(转) 1.首先到Maven官网
下载安装文件,目前最新版本为3.0.3,下载文件为
apache-maven-3.0.3-bin.tar.gz,下载可以使用wget命令;
2.进入下载文件夹,找到下载的文件,运行如下命令解压
tar -xvf apache-maven-2.2.1-bin.tar.gz
解压后的文件夹
- tomcat的https 配置,syslog-ng配置
aichenglong
tomcathttp跳转到httpssyslong-ng配置syslog配置
1) tomcat配置https,以及http自动跳转到https的配置
1)TOMCAT_HOME目录下生成密钥(keytool是jdk中的命令)
keytool -genkey -alias tomcat -keyalg RSA -keypass changeit -storepass changeit
- 关于领号活动总结
alafqq
活动
关于某彩票活动的总结
具体需求,每个用户进活动页面,领取一个号码,1000中的一个;
活动要求
1,随机性,一定要有随机性;
2,最少中奖概率,如果注数为3200注,则最多中4注
3,效率问题,(不能每个人来都产生一个随机数,这样效率不高);
4,支持断电(仍然从下一个开始),重启服务;(存数据库有点大材小用,因此不能存放在数据库)
解决方案
1,事先产生随机数1000个,并打
- java数据结构 冒泡排序的遍历与排序
百合不是茶
java
java的冒泡排序是一种简单的排序规则
冒泡排序的原理:
比较两个相邻的数,首先将最大的排在第一个,第二次比较第二个 ,此后一样;
针对所有的元素重复以上的步骤,除了最后一个
例题;将int array[]
- JS检查输入框输入的是否是数字的一种校验方法
bijian1013
js
如下是JS检查输入框输入的是否是数字的一种校验方法:
<form method=post target="_blank">
数字:<input type="text" name=num onkeypress="checkNum(this.form)"><br>
</form>
- Test注解的两个属性:expected和timeout
bijian1013
javaJUnitexpectedtimeout
JUnit4:Test文档中的解释:
The Test annotation supports two optional parameters.
The first, expected, declares that a test method should throw an exception.
If it doesn't throw an exception or if it
- [Gson二]继承关系的POJO的反序列化
bit1129
POJO
父类
package inheritance.test2;
import java.util.Map;
public class Model {
private String field1;
private String field2;
private Map<String, String> infoMap
- 【Spark八十四】Spark零碎知识点记录
bit1129
spark
1. ShuffleMapTask的shuffle数据在什么地方记录到MapOutputTracker中的
ShuffleMapTask的runTask方法负责写数据到shuffle map文件中。当任务执行完成成功,DAGScheduler会收到通知,在DAGScheduler的handleTaskCompletion方法中完成记录到MapOutputTracker中
- WAS各种脚本作用大全
ronin47
WAS 脚本
http://www.ibm.com/developerworks/cn/websphere/library/samples/SampleScripts.html
无意中,在WAS官网上发现的各种脚本作用,感觉很有作用,先与各位分享一下
获取下载
这些示例 jacl 和 Jython 脚本可用于在 WebSphere Application Server 的不同版本中自
- java-12.求 1+2+3+..n不能使用乘除法、 for 、 while 、 if 、 else 、 switch 、 case 等关键字以及条件判断语句
bylijinnan
switch
借鉴网上的思路,用java实现:
public class NoIfWhile {
/**
* @param args
*
* find x=1+2+3+....n
*/
public static void main(String[] args) {
int n=10;
int re=find(n);
System.o
- Netty源码学习-ObjectEncoder和ObjectDecoder
bylijinnan
javanetty
Netty中传递对象的思路很直观:
Netty中数据的传递是基于ChannelBuffer(也就是byte[]);
那把对象序列化为字节流,就可以在Netty中传递对象了
相应的从ChannelBuffer恢复对象,就是反序列化的过程
Netty已经封装好ObjectEncoder和ObjectDecoder
先看ObjectEncoder
ObjectEncoder是往外发送
- spring 定时任务中cronExpression表达式含义
chicony
cronExpression
一个cron表达式有6个必选的元素和一个可选的元素,各个元素之间是以空格分隔的,从左至右,这些元素的含义如下表所示:
代表含义 是否必须 允许的取值范围 &nb
- Nutz配置Jndi
ctrain
JNDI
1、使用JNDI获取指定资源:
var ioc = {
dao : {
type :"org.nutz.dao.impl.NutDao",
args : [ {jndi :"jdbc/dataSource"} ]
}
}
以上方法,仅需要在容器中配置好数据源,注入到NutDao即可.
- 解决 /bin/sh^M: bad interpreter: No such file or directory
daizj
shell
在Linux中执行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。
分析:这是不同系统编码格式引起的:在windows系统中编辑的.sh文件可能有不可见字符,所以在Linux系统下执行会报以上异常信息。
解决:
1)在windows下转换:
利用一些编辑器如UltraEdit或EditPlus等工具
- [转]for 循环为何可恨?
dcj3sjt126com
程序员读书
Java的闭包(Closure)特征最近成为了一个热门话题。 一些精英正在起草一份议案,要在Java将来的版本中加入闭包特征。 然而,提议中的闭包语法以及语言上的这种扩充受到了众多Java程序员的猛烈抨击。
不久前,出版过数十本编程书籍的大作家Elliotte Rusty Harold发表了对Java中闭包的价值的质疑。 尤其是他问道“for 循环为何可恨?”[http://ju
- Android实用小技巧
dcj3sjt126com
android
1、去掉所有Activity界面的标题栏
修改AndroidManifest.xml 在application 标签中添加android:theme="@android:style/Theme.NoTitleBar"
2、去掉所有Activity界面的TitleBar 和StatusBar
修改AndroidManifes
- Oracle 复习笔记之序列
eksliang
Oracle 序列sequenceOracle sequence
转载请出自出处:http://eksliang.iteye.com/blog/2098859
1.序列的作用
序列是用于生成唯一、连续序号的对象
一般用序列来充当数据库表的主键值
2.创建序列语法如下:
create sequence s_emp
start with 1 --开始值
increment by 1 --増长值
maxval
- 有“品”的程序员
gongmeitao
工作
完美程序员的10种品质
完美程序员的每种品质都有一个范围,这个范围取决于具体的问题和背景。没有能解决所有问题的
完美程序员(至少在我们这个星球上),并且对于特定问题,完美程序员应该具有以下品质:
1. 才智非凡- 能够理解问题、能够用清晰可读的代码翻译并表达想法、善于分析并且逻辑思维能力强
(范围:用简单方式解决复杂问题)
- 使用KeleyiSQLHelper类进行分页查询
hvt
sql.netC#asp.nethovertree
本文适用于sql server单主键表或者视图进行分页查询,支持多字段排序。KeleyiSQLHelper类的最新代码请到http://hovertree.codeplex.com/SourceControl/latest下载整个解决方案源代码查看。或者直接在线查看类的代码:http://hovertree.codeplex.com/SourceControl/latest#HoverTree.D
- SVG 教程 (三)圆形,椭圆,直线
天梯梦
svg
SVG <circle> SVG 圆形 - <circle>
<circle> 标签可用来创建一个圆:
下面是SVG代码:
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<circle cx="100" c
- 链表栈
luyulong
java数据结构
public class Node {
private Object object;
private Node next;
public Node() {
this.next = null;
this.object = null;
}
public Object getObject() {
return object;
}
public
- 基础数据结构和算法十:2-3 search tree
sunwinner
Algorithm2-3 search tree
Binary search tree works well for a wide variety of applications, but they have poor worst-case performance. Now we introduce a type of binary search tree where costs are guaranteed to be loga
- spring配置定时任务
stunizhengjia
springtimer
最近因工作的需要,用到了spring的定时任务的功能,觉得spring还是很智能化的,只需要配置一下配置文件就可以了,在此记录一下,以便以后用到:
//------------------------定时任务调用的方法------------------------------
/**
* 存储过程定时器
*/
publi
- ITeye 8月技术图书有奖试读获奖名单公布
ITeye管理员
活动
ITeye携手博文视点举办的8月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。
8月试读活动回顾:
http://webmaster.iteye.com/blog/2102830
本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《跨终端Web》
gleams:http