luogu P1586 四方定理(背包)】的更多相关文章

题意 题解 首先吐槽一下体面的第一句话.反正我不知道(可能是因为我太菜了) 可能没有睡醒,没看出来是个背包. 但告诉是个背包了应该就好做了. #include<iostream> #include<cstring> #include<cstdio> #include<cmath> #include<algorithm> using namespace std; int t,n; ][]; int main(){ dp[][]=; ;i*i<…
P1586 四方定理 题目描述 四方定理是众所周知的:任意一个正整数nn,可以分解为不超过四个整数的平方和.例如:25=1^{2}+2^{2}+2^{2}+4^{2}25=12+22+22+42,当然还有其他的分解方案,25=4^{2}+3^{2}25=42+32和25=5^{2}25=52.给定的正整数nn,编程统计它能分解的方案总数.注意:25=4^{2}+3^{2}25=42+32和25=3^{2}+4^{2}25=32+42视为一种方案. 输入输出格式 输入格式: 第一行为正整数tt(t…
P1586 四方定理 题目描述 四方定理是众所周知的:任意一个正整数nn,可以分解为不超过四个整数的平方和.例如:25=1^{2}+2^{2}+2^{2}+4^{2}25=1​2​​+2​2​​+2​2​​+4​2​​,当然还有其他的分解方案,25=4^{2}+3^{2}25=4​2​​+3​2​​和25=5^{2}25=5​2​​.给定的正整数nn,编程统计它能分解的方案总数.注意:25=4^{2}+3^{2}25=4​2​​+3​2​​和25=3^{2}+4^{2}25=3​2​​+4​2​…
题目描述 四方定理是众所周知的:任意一个正整数nn ,可以分解为不超过四个整数的平方和.例如:25=1^{2}+2^{2}+2^{2}+4^{2}25=12+22+22+42 ,当然还有其他的分解方案,25=4^{2}+3^{2}25=42+32 和25=5^{2}25=52 .给定的正整数nn ,编程统计它能分解的方案总数.注意:25=4^{2}+3^{2}25=42+32 和25=3^{2}+4^{2}25=32+42 视为一种方案. 输入输出格式 输入格式: 第一行为正整数tt (t\le…
题目描述 四方定理是众所周知的:任意一个正整数nn ,可以分解为不超过四个整数的平方和.例如:25=1^{2}+2^{2}+2^{2}+4^{2}25=12+22+22+42 ,当然还有其他的分解方案,25=4^{2}+3^{2}25=42+32 和25=5^{2}25=52 .给定的正整数nn ,编程统计它能分解的方案总数.注意:25=4^{2}+3^{2}25=42+32 和25=3^{2}+4^{2}25=32+42 视为一种方案. 输入输出格式 输入格式: 第一行为正整数tt (t\le…
题目链接 此题使用DP.设f[i][j]表示数i用j个数表示,则对于所有的k<=sqrt(i),有 f[i][j]=∑f[i-k*k][j-1] 但是这样会有重复情况.所以先枚举k,再枚举i和j. 代码如下 #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<cctype> inline long long read(){ ,f=; ch…
题目 这个题的本质是动态规划中的背包问题. 为什么会想到背包呢. 因为往往方案数不是排列组合就是递推或者是dp,当然还有其他的可能.我们可以把一个数的代价当成这个数的平方,价值就是一个方案数.由于这个数可以取无数次所以这个背包问题即为一个完全背包.  因此我们可以预处理出从1到数据范围的所有数的方案. 这个过程也是一个DP的过程.我们先把1到sqrt(数据范围)的数的平方数存到data数组中.然后再套用背包公式 因为最大的平方数是32768.所以最大的数是181.因此我们可以想象成共有181个物…
四方定理 数论中有著名的四方定理:所有自然数至多只要用四个数的平方和就可以表示. 我们可以通过计算机验证其在有限范围的正确性. import java.*; import java.util.*; public class Main121 { public static int f(int n, int a[], int idx) { if (n==0) // 填空1 return 1; if (idx == 4) return 0; for (int i = (int) Math.sqrt(n…
四方定理. 数论中有著名的四方定理:所有自然数至多只要用四个数的平方和就可以表示. 我们可以通过计算机验证其在有限范围的正确性. 对于大数,简单的循环嵌套是不适宜的.下面的代码给出了一种分解方案. 请仔细阅读,填写空缺的代码(下划线部分). 注意:请把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的"解答.txt"中即可. 直接写在题面中不能得分. int f(int n, int a[], int idx) { if(______________) return 1…
传送门 相当于背包, f[i][j] 表示当前数为 i,能分解成 j 个数的平方的和的数量 那么就是统计背包装物品的数量 ——代码 #include <cmath> #include <cstdio> #include <iostream> #define max(x, y) ((x) > (y) ? (x) : (y)) int t, n, m, sum; int a[101], f[100001][5]; inline int read() { int x =…
传送门 Description Input 第一行为一个整数T代表数据组数,之后T行每行一个数n代表要被分解的数 Output 对于每个n输出一行,为方案个数 Sample Input Sample Output Hint t<=100,n<=23768. Solution dp方程转移之类显然,唯一需要说的是有关去重的问题.显然需要打一张到maxn的平方表.然后f[i][j]代表i分解为j个平方数的方案数.如题面所说,x=a2+b2与x=b2+a2是同一种方案.既然如此,就不能外层循环第一维…
题目描述 小春现在很清闲,面对书桌上的N张牌,他决定给每张染色,目前小春只有3种颜色:红色,蓝色,绿色.他询问Sun有多少种染色方案,Sun很快就给出了答案.进一步,小春要求染出Sr张红色,Sb张蓝色,Sg张绝色.他又询问有多少种方案,Sun想了一下,又给出了正确答案. 最后小春发明了M种不同的洗牌法,这里他又问Sun有多少种不同的染色方案.两种染色方法相同当且仅当其中一种可以通过任意的洗牌法(即可以使用多种洗牌法,而每种方法可以使用多次)洗成另一种.Sun发现这个问题有点难度,决定交给你,答案…
题目链接:https://www.luogu.org/problemnew/show/P3807 Lucas定理用来求大组合数对一个质数取模的值,不大于10^5用逆元,大于10^5就用Lucas转化成10^5以内,如果不是质数还要用扩展Lucas Lucas(n,m,p) = C(n%p,m%p)*Lucas(n/p,m/p,p) #include <cstdio> #include <iostream> #include <algorithm> using names…
树上背包 #include<bits/stdc++.h> using namespace std; ; const int inf=0x3f3f3f3f; vector<int> son[N]; int f[N][N],s[N],n,m; void dfs(int u){ f[u][]=; ;i<son[u].size();i++){ int v=son[u][i]; dfs(v); ;j--) ;k--) ) f[u][j]=max(f[u][j],f[u][j-k]+f[…
题目背景 无 题目描述 总公司拥有高效设备M台,准备分给下属的N个分公司.各分公司若获得这些设备,可以为国家提供一定的盈利.问:如何分配这M台设备才能使国家得到的盈利最大?求出最大盈利值.其中M≤15,N≤10.分配原则:每个公司有权获得任意数目的设备,但总台数不超过设备数M. 输入输出格式 输入格式: 第一行有两个数,第一个数是分公司数N,第二个数是设备台数M. 接下来是一个N*M的矩阵,表明了第 I个公司分配 J台机器的盈利. 输出格式: 第1行为最大盈利值 第2到第n为第i分公司分x台 输…
题目传送门 思路:首先是Burnside引理,要先学会这个博客. Burnside引理我们总结一下,就是 每种置换下不动点的数量之和除以置换的总数,得到染色方案的数量.        这道题,显然每种洗牌方式都是一种置换,我们先数出每种置换的不动点.什么叫不动点,就是在这个置换下不停的变化后状态不变的染色方案.容易想出每个置换都有一个循环节,每张牌在某种洗牌方式下的位置是循环的,那要使得这个成为一个不动点,就需要使得同一循环节上的牌的颜色相同.那么这个问题就转化成了一个三维背包问题了. 背包的转…
传送门 解题思路 \(orz\)出题人的神仙做法.本蒟蒻看不懂,就水个求补图再二分图染色的方法来\(%1%\)出题人. 首先我们对图中\(m\)个关系连边,发现这样是没法做的,因为我们最后要关注的是谁和谁不能在一起,这个限制是比较大的.所以我们考虑建一个补图,就是把原来没有的边加边,原来存在的边断掉.这样\(a\)和\(b\)之间有边就代表\(a\)与\(b\)不能属于一个集合,这样就可能形成了若干个图.首先考虑判合法,因为一共只有两个集合,而每个人都必须放到集合里,关系还可以抽象成一张无向图,…
嘟嘟嘟 既然让求前\(k\)优解,那么就多加一维,\(dp[j][k]\)表示体积为\(j\)的第\(k\)优解是啥(\(i\)一维已经优化掉了). 考虑原来的转移方程:dp[j] = max(dp[j], dp[j - c[i]] + v[i]). 现在多了一维,那么dp'[j][k]就分别从dp[j][]和dp[j - c[i]][]中取前\(k\)大的即可. #include<cstdio> #include<iostream> #include<cmath> #…
P2079 烛光晚餐 题意 题目背景 小明准备请小红去一家咖啡厅,共进烛光晚餐.小红高兴地和他一起去了咖啡厅. 题目描述 小红说:"小明,你点菜吧."小明看到菜单上有\(N\)道菜,每道菜的价格是\(C_i\).小明对每道菜的喜爱程度是\(X_i\),小红对每道菜的喜爱程度是\(Y_i\).(喜爱程度可能为负数)(小明:以我对她的了解,我给你的数据不会错的) 小明带了\(V\)元钱,他点的菜的总价格不能超过\(V\)(小明:当然得我请客啦,显得我大方.) 小明希望让小红吃得开心,所以当…
四方定理 Time Limit:1000MS  Memory Limit:65536K Total Submit:28 Accepted:11 Description 数论中著名的"四方定理"讲的是:所有自然数至多只要用四个数的平方和就可以表示. Input 输入包含多行数据 每行输入一个n,(1<=n<=10000) 数据以EOF结束 Output 由于可能会出现多种情况,依次输出最小的a,b,c,d即可 即输出最小的a,然后输出最小的b,依此类推 Sample Inpu…
例8    尼科彻斯定理 题目描述 尼科彻斯定理可以叙述为:任何一个整数的立方都可以表示成一串连续的奇数的和.需要注意的是,这些奇数一定是连续的,如:1,3,5,7,9,…. 例如,对于整数5,5*5*5=125=21+23+25+27+29. 对于整数6,216=31+33+35+37+39+41, 也可以表示为216=7+9+11+13+15+17+19+21+23+25+27+29. 请你编写程序对这个定理进行验证. 输入格式 一个整数n(2≤n≤1000). 输出格式 将n的立方表示为一…
Description 给你一个序列,和m种可以使用多次的置换,用3种颜色染色,求方案数%p. Sol Burnside定理+背包. Burnside定理 \(N(G,\mathbb{C})=\frac {1}{\left | G \right |}\sum_{f\in G}\left |\mathbb{C}(f)  \right |\) \(\mathbb{C}\) 中非等价的着色数等于在 \(G\) 中的置换作用下保持不变的着色的平均数.<组合数学> 对于每一种置换 求出关于置换的一个有向…
目录: 1.绘制余弦曲线 2.绘制余弦曲线和直线 3.绘制圆 4.歌星大奖赛 5.求最大数 6.高次方数的尾数 8.借书方案知多少 9.杨辉三角形 10.数制转换 11.打鱼还是晒网 12.抓交通肇事犯 13.该存多少钱 14.怎样存钱利最大 15.捕鱼和分鱼 16.出售金鱼 1.7 分数四则运算 17.平分七筐鱼 18.有限5位数 19. 8 除不尽的数 21.4位反序数 22.求车速 23.阿姆斯特朗数 24.完全数 26.亲密数 27.自守数 28.回文数 29.求具有abcd=(ab+c…
前言 之前把一些LeetCode题目的思路写在了本子上,现在把这些全都放到博客上,以后翻阅比较方便. 题目 99.Recover Binary Search Tree 题意 Two elements of a binary search tree (BST) are swapped by mistake. Recover the tree without changing its structure. 恢复两个因错误而导致的左右子树. 思路 通常我们的做法是,根据BST的特质,可以用中序遍历来检…
C语言趣味程序设计编程百例精解 C/C++语言经典.实用.趣味程序设计编程百例精解(1)  https://wenku.baidu.com/view/b9f683c08bd63186bcebbc3c.html https://blog.csdn.net/nigulasi_dawei/article/details/72795786 1.绘制余弦曲线 在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线 *问题分析与算法设计 如果在程序中使用数组,这个问题十分简单.但若规定不能使用数组,问题…
前言:以下代码部分仅供参考,C语言解答部分全部来自网友,Java语言部分部分参考自网友,对于答案的正确性不能完全保证. 试题1 数论中有著名的四方定理:所有自然数至多只要用四个数的平方和就可以表示. 我们可以通过计算机验证其在有限范围的正确性. 对于大数,简单的循环嵌套是不适宜的.下面的代码给出了一种分解方案. 请仔细阅读,填写空缺的代码(下划线部分). 注意:请把填空的答案(仅填空处的答案,不包括题面)存入考生文件夹下对应题号的“解答.txt”中即可. 直接写在题面中不能得分. int f(i…
[内容简介:] <Visual C++开发实战1200例(第1卷)>是“软件开发实战1200例”丛书之一.<Visual C++开发实战1200例(第1卷)>,编程实例的四库全书!练习.速查的专业手册!600个编程实例,练习.速查.应用三位一体,500余经验技巧,解惑.拓展.总结全面透析,海量学习资料,立体化学习服务.实例极为丰富,可谓练习.速查.学习的“四库全书”<软件开发实战1200例>每个品种的第1卷.第II卷各精选了600个实例和约500个经验技巧,涵盖了编程多…
本书以开发人员在项目开发中经常遇到的问题和必须掌握的技术为中心,介绍了应用Visual Basic进行程序开发各个方面的知识和技巧.主要包括基础知识.窗体界面设计.控件应用等.全书分6篇20章,共计600个实例和600个经验技巧.每个实例都是经过笔者精心筛选的,具有很强的实用性,其中一些实例是开发人员难于寻觅的解决方案. 本书两卷共计1200个例子,包括了开发中各个方面最常用的实例,是目前市场上实例最全面的开发类图书:本书实例来源于多位工程师的多年积累,具有很强的实用性. 本书附带有配套DVD光…
以后还是这样 25道题一起发 看着爽 noip失利之后发粪涂墙 刷了一波bzoj 题解: bzoj1000 A+B问题 这题不同的人有不同的写法,我写了个线段树套Treap,应该还是挺简单的 但是看别的大神的代码跑的飞快就粘过来吧   这题竟然不用树套树,太强了 #include<iostream> #include<cstdio> #include<cstdlib> #include<cmath> #include<cstring> #incl…
100个经典C语言程序(益智类) [1.绘制余弦曲线] 在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线 [问题分析与算法设计] 利用cos(x)的左右对称性,将屏幕的行方向定义为x,列方向定义为y,则0~180度的图形与180~360度的图形是左右对称的,若定义图形的总宽度为62列,计算出x行0~180度时y点的坐标m,那么在同一行与之对称的180~360度的y点的坐标就 应为62-m.程序中利用反余弦函数acos计算坐标(x,y)的对应关系. #include<stdio.h>…