杂记录


项目用到的东西:

volley 网络框架(以前用Asych-task-http)

picasso 图片加载框架

recycleview 代替了ListView

SwipeRefreshLayout  代替了PullToRefresh 开源下拉刷新组件

butterknife 注解框架

信鸽推送,新浪微博分享,微信分享。

mvp 模式开发

从eclipse 迁移到android studio

---------------------------------------------

待写

---------------------------------------------

其他库

PhotoView放大缩小的图片处理库

jackson, json解析库

ZXing二维码识别库





网络框架随便记录

一:一个网络请求包含什么信息呢?
MyAndroidClient{

url     请求地址 String 
handler 请求处理器  Handler
Context 请求标记    Activity
param   请求协议数据  自定义
{
ID //协议id
requestdata //请求数据
responsedata //响应数据
packData(); //打包请求数据
unPackData();//解析返回数据
}

}




二:发送网络请求
//提交一个runnable对象表示一个网络任务,并返回一个future对象表示这个任务。
  听起来绕,实际上就是Future代表当前任务。

//Future request = threadPool.submit(new Runnable(new MyAndroidClient(xxx...)));

  Future<?> request = threadPool.submit(new AsyncHttpRequest(client, httpContext, uriRequest, responseHandler));

        if(context != null) {
            // 把这个网络任务记录在map中
            List<WeakReference<Future<?>>> requestList = requestMap.get(context);

            if(requestList == null) {
                requestList = new LinkedList<WeakReference<Future<?>>>();
                requestMap.put(context, requestList);
            }

            requestList.add(new WeakReference<Future<?>>(request));
        }


三:
 集合里面存放弱引用 ,这种思想 要学习一下,以后可能有其他应用场景。

 requestList.add(new WeakReference<Future<?>>(request));



### 蓝桥杯中与作物交相关的编程问题及解法 在蓝桥杯竞赛中,“作物交”类问题是典型的组合优化或动态规划问题,通常涉及基因遗传规律、最优配对方案的选择以及最大收益计算等内容。以下是对此类问题的分析和解决方法。 #### 1. 题目背景概述 此类题目可能描述如下场景:给定若干种作物及其对应的属性(如产量、抗病性等),通过设计合理的交方式,在有限代数内获得目标特性最强的后代。这类问题的核心在于如何合理安排交代数和亲本选择顺序以达到最佳效果[^1]。 #### 2. 动态规划建模 对于多阶段决策过程中的最优化问题,可以考虑使用动态规划来求解。假设我们需要经过 \(k\) 次交操作得到最终产物,则定义状态转移方程为: \[ dp[i][j] = \max(dp[i-1][p] + gain(p,j)) \] 其中: - \(i\) 表示当前处于第几代; - \(j\) 是当前这一代所选品种编号; - \(gain(p, j)\) 记录由父辈 \(p\) 交至子代 \(j\) 的增益值; 初始条件设置为第一代表现型已知的情况,即直接赋初值于数组首列即可完成初始化工作。 ```python def crop_hybridization(gain_matrix, generations): """ :param gain_matrix: List[List[int]], 基因增益矩阵 :param generations: int, 总共允许的最大交代数 :return: int, 可能取得的最大总增益 """ num_crops = len(gain_matrix) # 初始化 DP 数组 dp = [[0]*num_crops for _ in range(generations+1)] # 设置基础情况 (第一代) for j in range(num_crops): dp[1][j] = gain_matrix[0][j] # 进行动态规划迭代 for gen in range(2, generations+1): for curr_crop in range(num_crops): max_prev_gain = 0 for prev_crop in range(num_crops): candidate = dp[gen-1][prev_crop] + gain_matrix[prev_crop][curr_crop] if candidate > max_prev_gain: max_prev_gain = candidate dp[gen][curr_crop] = max_prev_gain return max(max_row for max_row in dp[-1]) ``` 上述代码片段实现了基于二维列表形式存储的状态表更新逻辑,并返回全局最高得分作为结果输出。 #### 3. 状态压缩技巧应用 当面对较大规模输入数据时,常规DP可能会面临内存超限的风险。此时可引入状态压缩技术减少冗余记录量。例如仅保留上一代的结果而非全部历史信息,从而将空间需求降至线性级别\(O(n)\)。 --- ####
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值