大体题意: 给你一个整数n(n<=10000),有多少种方案可以把n写成若干个连续素数之和? 思路: 直接素数打表,然后滑动窗口即可! 当sum小于目标时,移动右边r。 发现达到目标,直接记录答案。 当sum大于目标时,直接减左边的l 最后输出ans即可! include<cstdio> include<cstring> include<algorithm> include<cmath> usingnamespacestd; constintmaxn=100000+10; intvis[maxn]; intprime[maxn],n,c...

大体题意: 给你一个s,要求拆成2和1的和的形式,要求2的个数是偶数个,1的个数是偶数个,2不比1少,2和1的和为s 求方案数: 思路: 暴力求解即可!直接枚举2的个数,在枚举1的个数 比如说2有m个1有n个,那么这一组的答案就是(n+m)!/((n!)(m!)) 没有细想,直接用java大数了! 但也有教训,对java理解太少,开数组竟然要用new,试了半小时==! importjava.util.Scanner; importjava.math.BigInteger; publicclassMain{ //@SuppressWarnings("null") //@SuppressW...

  gSHLoS4ND9Hs   2023年11月02日   24   0   0 暴力枚举C++大数算法java

KK'sPoint TimeLimit:2000/1000MS(Java/Others)    MemoryLimit:65536/65536K(Java/Others)TotalSubmission(s):300    AcceptedSubmission(s):103 ProblemDescription N(2≤N≤105) pointsonacircle,therearealldifferent.Nowhe'sgoingtoconnectthe N   Inpu...

  gSHLoS4ND9Hs   2023年11月02日   44   0   0 ci#includec语言#define

FarmIrrigation TimeLimit:2000/1000MS(Java/Others)    MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):8691    AcceptedSubmission(s):3744 ProblemDescription Bennyhasaspaciousfarmlandtoirrigate.Thefarmlandisarectangle,andisdividedintoalotofsamllsquar...

  gSHLoS4ND9Hs   2023年11月02日   28   0   0 springico#include

大体题意: 给你n个元素的数组,让你由1,2,3,4...n变成所给序列,步骤都有哪些,其中步骤操作有两种: 操作1:交换前两个元素。 操作2:把第一个元素放到最后。 思路: 可以逆向考虑: 由所给序列变成1,2,3,4...n 这样操作1不变,操作2变为把最后一个元素放到第一个,然后逆向输出答案即可! 先有一个判断是否合法的函数,循环条件是不合法,就一直循环下去。 看样例可以看出规律: 先判断第一个是否大于第二个 若大于第二个并且第一个不是n的话就swap 如果不满足就执行操作2把最后一个元素放到第一个来 存到数组逆向输出即可 坑: 最好用stl做  n好像...

  gSHLoS4ND9Hs   2023年11月02日   23   0   0 c语言#include数组uva

思路和书上思路一样! 先从终点BFS,用d数组记录到终点的最短距离,直接从0开始不断加1即可! 扫到起点后,在从起点开始BFS,走路的条件必须满足,下一个路加1等于这个路,而且没有访问过vis[i]=0,然后在是字典序最小(把所有字典序最小的全部加入!) 最后存入答案时,用step记录从1走到当前步的步数,这个数值就是答案的索引,最后答案存入所有路中最小字典序就行了! 这里连接整个图时,最好用vector数组,room[a][i],表示a与i相连!颜色也是如此。 注意一个细节: INF也就是最大颜色值是10^9不要开的太小! include<bits/stdc.h> usin...

  gSHLoS4ND9Hs   2023年11月02日   23   0   0 c语言c++数组字典序uva

很巧妙的一道题,看了很长时间,也请教了同学。总之就是离散化的应用: 整体思路: 输入房子时,把左上角的X坐标和右上角X坐标输入到一个新的double数组中,作为一个拥有各个房子共同属性的X坐标,对他进行排序,去重(unique),这样只需要看每一个房子是否在这个区间是否可见就可以了,判断是否可见可以在这个区间里任意找一个点(原题是找中点),判断点是不是在房子里! 代码如下: include<cstdio> include<algorithm> usingnamespacestd; constintmaxn=100+5; intT,cont=0; structhous...

  gSHLoS4ND9Hs   2023年11月02日   27   0   0 离散化#includeC语言uva数组

大体题意: 给你一个数n,计算如何从x经过乘法除法快速计算到x^n。 输出最短长度! 思路: 直接迭代加深最短长度! 在dfs中,有两个参数cur和s分别代表当前层数和当前的指数! 只有当cur深度 并且s等于n时成立! 当cur大于深度剪枝! 或者s×2^(maxd-cur)<n时也剪枝; 说一下这里,maxdcur是剩余的步骤数,s为当前的数,按最大化来计算的话,为S+2S+4S +8S=S×2^(maxd-cur) 然后就是按照书中的思路,讲遍历过的数存下来,为了更快接近目标,应该先算乘法再算除法,而且不能出现已经出现的数,所以在加一个vis[]表示是否访问过...

  gSHLoS4ND9Hs   2023年11月02日   31   0   0 #includeC语言搜索迭代加深迭代

N! TimeLimit:10000/5000MS(Java/Others)    MemoryLimit:262144/262144K(Java/Others)TotalSubmission(s):73973    AcceptedSubmission(s):21474 ProblemDescription GivenanintegerN(0≤N≤10000),yourtaskistocalculateN!   Input OneNinoneline,processtotheendof...

  gSHLoS4ND9Hs   2023年11月02日   22   0   0 Javac语言ci

大体题意: 给你n个点已经按照x坐标排了序,问从左边的点一条线的走到右边的点并且一条线的返回起点,除了起点和终点外其余的点各走一次! 思路: 令dp[i][j]表示1max(i,j)都走过了,并且第一个人在i位置,第二个人在j位置,假设i>j。 那么1,2,3,,,,i位置都是走过的,第一个人可以走到i+1,第二个人不动, 或者第二个人走到i+1,第一个人不动。 那么转移方程可以是:dp[i][j]=min(dist[i+1][i]+dp[i+1][j],dist[i+1][j]+dp[i+1][i]); 第一部分 dist[i+1][i]+dp[i+1][j]的意...

  gSHLoS4ND9Hs   2023年11月02日   19   0   0

大体题意: 有n种硬币,面值分别为V1,V2,V3,,,VN每种都有无限多。给定非负整数S,可以选用多少个硬币,使得面值之和恰好为S?输出硬币数目的最小值和最大值 思路: 这是一个DAG模型,相当于从起点S出发到终点0的最长路和最短路,每使用一个硬币Vj,状态就从i转移到了i-Vj 用dp[i]记录状态i到终点0的最短/长路! 记忆化搜索的形式: include<cstdio> include<cstring> include<algorithm> usingnamespacestd; constintmaxn=1000+10; constintinf=...

关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~