站外题求助,一直WA!
  • 板块题目总版
  • 楼主rainygame
  • 当前回复0
  • 已保存回复0
  • 发布时间2022/11/12 21:21
  • 上次更新2023/10/27 03:11:23
查看原帖
站外题求助,一直WA!
804607
rainygame楼主2022/11/12 21:21

题目大意:

z=¬[(¬pq)(qpq)][(p¬q)(qpq)p]pz = \neg\left[\left(\neg p\wedge q\right) \vee \left(q \oplus p \rightarrow q \right) \right] \Leftrightarrow \left[\left(p \wedge \neg q \right) \wedge \left(q \oplus p \vee q \right) \vee p \right] \vee p

,且 pq=1p^q = 1

现在给两个整数 nnkk ,求下面算式的值:

i=1(n+k)2(j=1kj×zn)i=12nk+(l=12k)+n21(mod 109+7)\frac{\sum\nolimits_{i=1}^{\left(n+k \right)^2}\left(\prod\nolimits_{j=1}^k j \times z^n\right)}{\sum\nolimits_{i=1}^{2nk+\left( \prod\nolimits_{l=1}^2{k}\right)+n^2}1} \left(mod \ 10^9 + 7\right)

再给出一个九位数 pp ,如果如果它的前 ii 位都能被 ii 整除的话,那么就将式子乘 22 再输出 。

我的代码:

#include <bits/stdc++.h>
using namespace std;
#define MOD 1000000007

long long n, k, p, ans, ind = 8, temp;
int num[10];

bool can = true;
char ch[1700];

long long f(long long n){
	long long ans = 1;
	for (long long i=2; i<=n; i++) ans = (ans * i) % MOD;
	return ans % MOD;
}

int main(){
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	cin >> ch >> k >> p;
	ans = f(k);

	while (p){
		num[ind--] = p%10;
		p /= 10;
	}

	for (int i=0; i<9; i++){
		temp = temp * 10 + num[i];
		if (temp % (i+1)){
			can = false;
			break;
		}
	}

	if (can) ans <<= 1;
	cout << ans % MOD;

	return 0;
}

2022/11/12 21:21
加载中...