宁波建网站哪家值得信赖,p站代理网址,买一个成品网站多少钱,如何不用域名也可以做网站比赛链接 文章目录求导题目描述题解#xff1a;猜数题意#xff1a;题解#xff1a;方法一 贪心方法二 暴力答题卡题意#xff1a;题解#xff1a;代码#xff1a;求导
链接#xff1a;
时间限制#xff1a;C/C 1秒#xff0c;其他语言2秒
空间限制#xff1a;C/C …比赛链接
文章目录求导题目描述题解猜数题意题解方法一 贪心方法二 暴力答题卡题意题解代码求导
链接
时间限制C/C 1秒其他语言2秒
空间限制C/C 262144K其他语言524288K
64bit IO Format: %lld题目描述 输入描述: 给出一个数 n 输出描述: 输出求 xn求 n - 1 次导后 x 前的系数。(答案对 1097 取余) 示例1 输入 复制
5输出 复制
120备注: 对于50% 的数据满足n≤15
对于%100% 的数据满足 n≤10 5
题解
第一次求导系数为n 第二次求导系数为n*n-1 。。。 第n-1次求导系数为n*n-1…*2 不就是阶乘吗 直接暴力走起
#includebits/stdc.h
using namespace std;
typedef long long ll;
const int mod1e97;
const int maxn 1e5 5;int main(){ll n;cinn;ll base1;for(int i1;in;i){basebase*i%mod;}coutbaseendl;return 0;
}猜数
链接
题意
n个数改动前之和是大于等于m现在给出改动后问最少改动几个数字
输入
2 3
1 1输出
1题解
方法一 贪心
我们从最小的数字开始改同时记录每个数字的次数 有两种情况要记录个数第一个是把还未修改的最小数改成最大数9后总值还是没m大那这个数一定要改 另一个是改完当前数就正好满足条件那也记入答案结束 因为数的范围都在0到9所以可以用桶来存每个数这样操作时同时多个操作
#include bits/stdc.h
using namespace std;
const int maxn 1e6 4;
int n,m,a[maxn];
int tong[12];
int main() {cinnm; int sum 0,num,ans,tot0;for(int i1;in;i){cina[i];tong[9 - a[i]];sum a[i];}for(int i9;i0;i--){if(sum m) break;ans tong[i] * i;if(sum ans m) {sum ans;tot tong[i];}else{num ((double)(m - sum)/(double)i0.9);tot num;sum num * i;}}cout tot endl;return 0;
}
方法二 暴力
貌似直接暴力就可以过 排个序然后从小将每个数补满补到9如果补后大于m输出当前数的序号如果没补满继续
答题卡
题意 题解
dp做法 我们要先知道所选格子的横列不能冲突因为每个题只能有一个答案。。。
如果我们选中第一行第一列的格子反转后还是本身因为行列不能再选所以剩下就成了(n-1) * (n-1)的问题 如果选的是第一行第二列对称位置是第二行第一列也就是第一二行和第一二列都不能再选了就成了(n-2) * (n-2)的问题 第三行到第n行与第二种情况一样都变成了(n-2) * (n-2)的问题 汇总一起 第一种情况为dp[i-1]出现一次 第二种情况为dp[i-2]出现了n-1次 dp[n]dp[n-1](n-1)*dp[n-2]
代码
#includebits/stdc.h
using namespace std;
typedef long long ll;
const int maxn1e53;
ll dp[maxn];
int main(){dp[0] 1;dp[1] 1;dp[2] 2;dp[3] 4;ll n;cinn;for(int i 4 ; i n ;i)dp[i] (dp[i-1] (i-1)*dp[i-2])%mod;coutdp[n]endl;
}