唉,补题补题,太菜了当时看到这个题一点思路没有。。。。看了大佬的思路才懂。。。唉,还是思维没有练起来得多多刷题咯,(为啥一天天的困得要死)

思路:
先求出k的所有因子,然后分别从向量a和向量b找连续k的因子个1的数量,然后求出所有的因子就行了。(想不到想不到!!)(至于为什么找连续个稍微用笔画一画就知道了,或者说是乘法原理)
代码:

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

const int maxn = 4e4 + 10;
int a[maxn],b[maxn],p[maxn];
typedef long long int ll;
int main(){
	int n,m,k;cin>>n>>m>>k;
	for(int i = 1; i <= n; i++)cin>>a[i];
	for(int i = 1; i <= m; i++)cin>>b[i];
	int c = 0;
	for(int i = 1; i * i <= k; i++){
		if(k % i == 0){
			p[c++] = i;
			if(i * i == k)continue;
			p[c++] = k / i;
		}
	}
	ll ans = 0;
	for(int i = 0 ;i < c; i++){
		ll cnt = 0;
		ll x = 0 , y = 0;
		for(int j = 1; j <= n; j++){
			if(a[j] == 1){
				cnt ++;
			}else cnt = 0;
			if(cnt == p[i]){x++;cnt--;}
		}
		cnt = 0;
		for(int j = 1; j <= m; j++){
			if(b[j] == 1){
				cnt ++;
			}else cnt = 0;
			if(cnt == k / p[i]){y++;cnt--;}
		}
		ans += x * y;
	}
	cout<<ans<<endl;
	return 0;
}