题解列表

筛选

3050: 最长上升子序列

解题思路:注意事项:dp[j]=max(dp[j],dp[i]+1);参考代码:#include#includeintmax(inta,intb){returna>b?a:b;}intmain(){intN;intarr[10001],

2966基础写法

解题思路:注意事项:参考代码:#include#includeusingnamespacestd;intsushu(inta){if(a<2){return0;}inti;for(i=2;i<=sqrt(a);i++){if(a%i==0){return0;}}ret

明明的随机数(c语言桶解)

解题思路:用桶来排序,每个数字直接设置为一比qsort快桶号设置为1-1000注意事项:参考代码:intmain(){intN;scanf("%d",&N);inttong[1001]={0};srand((unsigned)time(NULL));for(inti=0;i

书架的问题

解题思路:创建一个visited数组来标记已经访问过的位置遍历数组,对于每个未访问的位置,开始寻找循环在循环中,从当前位置开始,按照"当前元素的值应该放在哪个位置"的规则追踪整个循环对于每个长度为k的循环,需要k-1次交换将所有循环的交换次数相加得到总的最小交换次数注意事项:参考代码:#include

最短距离的C语言

解题思路:这是一个最优匹配问题:在一条直线上有n个显示器和n个插座,需要将它们一一配对,使得所有连接线的总长度最小。关键约束:每个插座只能连接一个显示器连接线是直线距离目标是最小化总长度核心思路直觉:要让总长度最小,应该让位置相近的显示器和插座配对,避免"交叉连线"。