[Tanger的开发者日志] 开发小程序日志(一)
开发小程序日志(一)微信小程序介绍小程序,顾名思义,就是一种**“用完即走”**的轻量级应用形态。 现代人手机里的应用很多,但据统计有 70% 的应用几乎不用,真正频繁使用的只占 30%。这些长时间不用的 App 却常年占用内存、流量和资源。基于此背景,微信小程序应运而生 —— 不用下载,随用随开,体验轻便。 小程序的目录结构通常,一个页面对应一个文件夹,包含以下 四个必要文件: .wxml —— 页面结构(类似 HTML) .wxss —— 样式文件(类似 CSS) .js —— 页面逻辑 .json —— 页面配置 这四个文件缺一不可,后续可通过跳转链接在页面间切换。 ⚠️ 注意:wxss ≈ css,只是为了小程序定制做了扩展。 基础布局容器:<view>小程序的语法风格和 Vue 非常接近。 hover 效果如果你想让一个 view 像按钮一样,按下时改变样式,可以这样写: 12345<view class="box" hover-class="boxHover"> wdnmd <view ...
[技术干货] JavaScript 开发微信小程序这样行不行?
JavaScript 开发微信小程序注册小程序开发小程序的第一步是注册账号。访问微信公众平台:https://mp.weixin.qq.com/,可以看到账号分为三类: 服务号 订阅号 小程序 这里我们只关注“小程序”,点击进入即可注册。 配置服务器微信小程序本身已经提供了大量的 API 接口,满足大多数功能需求。但如果已有后端服务,也可以直接在小程序中调用已有接口,甚至直接嵌入已有网页。 如果有这方面需求,首先需要在小程序控制台做一些设置: 1. appid 和 AppSecret在“小程序设置” - “开发者 ID”页面可以获取: AppID:小程序唯一标识; AppSecret:开发使用的秘钥。 这些在后续开发中非常关键。 2. 服务器域名配置(本节暂略,可在后续配置中根据接口部署情况进行设置) 关联设置可以在小程序后台将其与公众号或微信开放平台账号绑定。 绑定的好处包括: 公众号菜单可跳转到小程序; 小程序内可跳转公众号; 获取 UnionID(需用户关注公众号并绑定开放平台)。 ⚠️ 注意:如果用户仅使用小程序而没有关注公众号,是无法获取 UnionID 的...
桂林电子科技大学 ACM 暑假课 | 7 月 25 日 ACM 期中考试题解
桂林电子科技大学 ACM 暑假课 | 7 月 25 日 ACM 期中考试题解这次比赛简直绝了,A 到 E 五道题一道不会,就最后的 F 题打牌会,呜呜呜,还是多刷刷算法题吧。 A: 奇数和数组题目描述: 给你一个由 n 个整数组成的数组 a。在一次移动中,您可以选择两个下标 (1 \leq i, j \leq n),且 (i \neq j),并且设置 (a_i := a_j)。您可以执行这样的移动任意次数(可能是零次)。您可以在不同的操作中选择不同的下标。操作 := 是赋值的操作(即选择 i 和 j 并用 (a_j) 替换 (a_i))。你的任务是判断是否有可能得到一个元素之和为奇数(不能被 2 整除)的数组。 输入: 第一行包含一个整数 t((1 \leq t \leq 2000))——测试用例的数量。 接下来的 2t 行描述了测试用例。 测试用例的第一行包含一个整数 n((1 \leq n \leq 2000))——数组中元素的数量。 测试用例的第二行包含 n 个整数 (a_1, a_2, \dots, a_n)((1 \leq a_i \leq 200...
ACM 算法入门 · 搜索篇:优化向
🧭 ACM 算法入门 · 搜索篇(优化向)本篇将带你从搜索算法基础出发,结合实战与技巧,掌握高效的搜索策略与代码实现。 1️⃣ 什么是搜索算法?搜索算法是一种通过穷举可能状态,寻找满足条件解的算法方式。 搜索过程 = 构造解答树 + 找到目标节点 它利用计算机的高性能,遍历问题的状态空间,找到通向目标的路径或解。 2️⃣ 深度优先搜索(DFS)🔍 定义深度优先搜索(Depth First Search)是一种回溯型搜索方法,形象比喻为“不撞南墙不回头”。 🧠 原理说明 从某个起点出发,尝试所有可能路径 沿路径深入,直到到达终点或走不通 回溯,换一条路径再试 ✨ 搜索流程: 标记当前位置为“已走” 遍历四个方向 / 所有可能状态 若合法、未访问 -> 递归进入 回溯:搜索完该路径后恢复现场 🧩 示例场景:从起点 A 出发,目标是到达 G,若有多个路径,通过 DFS 可遍历所有可能路径。 📦 模板代码12345678910111213void dfs(int x, int y) { if (到达终点) { ...
桂林电子科技大学 ACM 暑假课 | 7 月 25 日 ACM 作业题解
桂林电子科技大学 ACM 暑假课 | 7 月 25 日 ACM 作业题解A: 六皇后题目描述: 一个如下的 6×6 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行、每列有且只有一个,每条对角线(包括两条主对角线的所有平行线)上至多有一个棋子。 行号:1 2 3 4 5 6列号:2 4 6 1 3 5 这只是棋子放置的一个解。请编一个程序找出所有棋子放置的解。并把它们以上面的序列方法输出,解按字典顺序排列。请输出前 3 个解。最后一行是解的总个数。 输入: 一行一个正整数 n,6≤n≤13,表示棋盘是 nxn 大小的。 输出: 前三行为前三个解,每个解的两个数字之间用一个空格隔开。 第四行只有一个数字,表示解的总数。 样例输入: 16 样例输出: 12342 4 6 1 3 53 6 2 5 1 44 1 5 2 6 34 参考程序: 12345678910111213141516171819202122232425262728293031323334353637#include<iostream>using namespace std;int count ...
桂林电子科技大学 ACM 暑假课 | 7 月 23 日 ACM 作业题解
1.A. 找良好数组题目描述给你一个数组 a,下标从 0 开始。如果数组中的每个奇数下标为奇数,且每个偶数下标为偶数,则称其为“好数组”,否则为“坏数组”。你可以任意交换两个元素(可以不相邻)。请你判断是否可以通过最少交换变为好数组,并输出最小交换次数;若无法变成好数组,输出 -1。 输入 第一行一个整数 t(1 ≤ t ≤ 1000)表示测试用例组数。 每组测试用例: 第一行一个整数 n(1 ≤ n ≤ 40)表示数组长度。 第二行 n 个整数 a0, a1, ..., an−1(0 ≤ ai ≤ 1000)。 输出每组数据输出一个整数:能变为好数组的最小交换次数,或 -1 表示无法实现。 样例输入 123456789443 2 7 633 2 61774 9 2 1 18 3 0 样例输出 123421-10 2.B. B 进制加法题目描述给定一个进制 B(2 ≤ B ≤ 36),以及两个 B 进制的正整数,求它们的和(结果仍为 B 进制)。 输入 123第1行:进制 B第2行:第一个 B 进制正整数第3行:第二个 B 进制正整数 输出一个 B 进制的数,表示...
桂林电子科技大学 ACM 暑假课 | 7 月 22 日 ACM 作业题解
A: 讲故事题目描述: 一天,天上掉下来了一个可爱的小妹妹,小妹妹天天缠着你给她讲故事。并且让你在 N 天内给她讲 K(K ≤ N)个不同小故事。你把你知道的所有 K 个故事从 1 到 K 进行编号。她每天会要求你讲某一个小故事,例如第 i 天她会要求你给他讲第 ai 个小故事。 由于小妹妹有间歇性失忆,所以她可能会在一些天内要求你讲你已经讲过的故事。如果你每天都按照她的要求来的话,可能会出现无法在 N 天内讲完 K 个故事的情况(小妹妹可能没有要求过讲某个故事) 你为了完成任务可能在某些情况下,不得不拒绝她的要求,给她讲其他的小故事。但是你在第 i 天拒绝了小妹妹的请求的话,小妹妹对你的好感度就会下降 b 如何在降低最小好感度的情况下在 N 天内讲完 K 给小故事。请输出最少降低的好感度。 输入: 第一行两个正整数,N K (1≤ K ≤N ≤ 10^5) N 为总天数,K 为需要讲述的故事个数 第二行 N 个正整数 a1 a2 …… an (1 ≤ ai ≤ k) 第 n 天要求的故事序号 第三行 N 个正整数 b1 b2 …… bn(1 ≤ bi ≤ 10^9) 第 ...
ACM 算法入门 · 贪心篇:从局部最优到整体最优的策略思维
ACM 算法入门 · 贪心篇:从局部最优到整体最优的策略思维什么是贪心算法? 贪心算法(Greedy Algorithm) 是一种在每一步选择中都采取当前状态下最优(即最有利)选择的策略,期望通过局部最优最终达到全局最优。 它的核心思想是: 局部最优 ➜ 全局最优 但需要特别注意的是:贪心策略并不总是适用于所有问题,它只适合满足以下两个条件的问题: ✅ 最优子结构:问题的最优解包含其子问题的最优解; ✅ 无后效性:某一步的选择不会影响后续的选择过程。 如果问题不满足这两个性质,使用贪心算法可能得不到正确解。 贪心算法的基本思路贪心算法虽然没有统一的模板,但通常遵循以下解决步骤: 建立数学模型:用合理的数据结构和变量表达问题; 拆解为子问题:将原问题划分为一系列阶段性子问题; 定义贪心策略:找出每一步的“最优选择”规则; 按策略求解子问题:每次都按照贪心策略做选择; 组合局部最优解:最终汇总各步的选择,构成整体解。 贪心算法存在的问题 不能保证最终求得的解一定是全局最优; 不适用于所有需要求最大值或最小值的问题; 只能求满足某些特定约束条件下的可行解。 贪心算...
桂林电子科技大学 ACM 暑假课 | 7 月 21 日 ACM 作业题解
桂林电子科技大学暑假课 ACM 作业题解合集本文整理了桂电暑假 ACM 训练营 7 月 21 日作业的 10 道典型题目及参考代码,并附带简明题解说明,供学习和复习使用。 1. A 简单数学题:判断数字各位是否全不相同题目描述: 给定一个数字 n,判断它的每一位数字是否都不相同。 输入:一个数字 n,满足 1 < n < 1000000 输出:若各位数字均不相同,输出 YES,否则 NO。 参考代码(C): 1234567891011121314151617#include<stdio.h>#include<stdbool.h>int main() { char A[10]; bool used[300] = {false}; scanf("%s", A); for (int i = 0; A[i] != '\0'; i++) { if (used[A[i]]) { printf("N...
ACM 算法入门 · 递归篇:从简单调用到巧妙解题
ACM 算法入门 · 递归篇:从简单调用到巧妙解题什么是递归? 递归(Recursion)是一种程序调用自身的编程技巧,常用于将复杂问题分解为规模更小的同类问题。它是一种 “以小见大” 的思想,用有限的代码描述无限的过程。 递归在程序设计语言中被广泛应用,尤其在算法题中非常常见。其核心在于: 边界条件:定义递归终止的情形; 递归调用:将问题逐步缩小并调用自身; 返回过程:逐层返回解,最终合并结果。 举个例子:阶乘的递归定义 12fac(1) = 1fac(n) = n * fac(n-1) 递归三步走(以阶乘为例)Step 1:边界条件(终止递归的出口)我们先考虑一个简单的问题:6! =6 × 5 × 4 × 3 × 2 × 1。 在编写阶乘函数时,我们可以有两种实现思路: 从 1 乘到 n(正序递归) 从 n 乘到 1(逆序递归) 不论哪种方式,核心都在于设定边界条件,也就是:什么时候停止递归? 我们这里采用第二种方式 —— 从 n 递减到 1: 当 n == 1 时,就不再继续向下递归,而是直接返回 1,这就是我们设定的递归终止条件(边界): 123...