qduoj 河神的难题 思维 实验室腊新呐 枚举
来源:互联网 发布:hough变换检测圆算法 编辑:程序博客网 时间:2024/05/17 17:17
河神的难题
发布时间: 2017年6月23日 22:53 最后更新: 2017年6月23日 22:57 时间限制: 1000ms 内存限制: 128M
一天ycb老师高兴的走在小河边,嘴里哼着小曲,突然河神从河里跳了出来,手里拿着一本《顶级游戏设计》。
河神对ycb老师说:"孩子你想要这本书吗?"要知道ycb老师早就想要一本游戏书了,所以y老师高兴的跳了起来,大喊着:"我要我要!".
谁知河神一本正经的说:"我的书只能送给配的上它的人,我现在出个题来考考题,如果你可以答上来我就把这本书送给你好了。"
"现在给你一个字符串s,定义一个二维数组b,对于数组中的每个元素 bij=si*sj ,再给你一个整数a,问你在这个二维数组b中可以找出
多少个子二维数组使得各个元素的和加起来等于a,输出所有解的个数?"
ycb老师对于这个问题很头疼,聪明的你们能帮帮他吗?
第一行包含一个整数a (0<=a<=1e9)
第二行包含一个字符串s (1<=|s|<=600)
输出一个整数,表示所有解的个数.
16439873893693495623498263984765
40
01230
19
矩阵的和等于 行值和乘以列值和,可以写几个推出来,所以就可以枚举所有的列值和,复杂度是n^2,显然列值和情况和行值和情况是一样的,对于每个列值和,求有多少种行值和等于(a/列值和),
最后在特判一下0就可以了
#include <vector>#include <iostream>#include <map>using namespace std;map <long long , long long> cnt;int a;string s;int main(){cin >> a >> s;long long ans = 0,zero=0,flog = -1;for(int i = 0; i < s.size(); i++) {long long sum = 0;for(int j = i; j < s.size(); j++) {sum += s[j] - '0';if(sum == 0 ) {zero++;continue;}if( a / sum != sum && a % sum == 0)ans += 2 * cnt[a / sum];cnt[sum]++;}}for(int i = 0; i*i <= a; i++)if(i*i == a) flog = i;if(a==0) cout << 2 * zero * s.size() * (1 + s.size()) / 2 - zero * zero << endl; elsecout << ans + (flog== -1 ? 0 : cnt[flog] * cnt[flog]) << endl;return 0;}
实验室腊新呐
发布时间: 2017年6月23日 22:53 最后更新: 2017年6月23日 22:55 时间限制: 1000ms 内存限制: 128M
实验室要纳新了,李楚凡同学很轻松的就通过了纳新测试,被纳入实验室的同学会被分成由七位学长带领的七个小组,而这七位学长都有着各自的脾气,有各自的要求,
现在不考虑同学之间的差异,只考虑每个小组之间的数量差异,根据下面每位学长的要求,求有多少种不同分配的方案数(当两种方案里存在一个小组有着不同的数量就
可以说这两种分配方案不同)。
包老师:两眼 是独相随,我的小组人数必须是偶数。
杨老师:我是最帅的,所以我的小组人数也必须是最多的。
炸老师:我是杨老师忠粉,所以杨老师的小组人数是我的小组人数的两倍。
谭老师:理应我是最大的,但我甘心在杨老师下面,所以我的小组人数仅次于杨老师(人数只比杨老师小)。
刘老师:我的小组人数各位上的位数之和是奇数。
闫老师:我的小组人数必须是个素数。
L老师:好脾气,我的小组人数多少都可以。
李院长看到这七个死**正经事没做多少,要求倒不少,怒斥道:"你们七个小组的人数总和必须是x,并且每个小组人数都不能超过16个并且不能少于1个。"
根据上述所有要求,给出整数x,求所有的不同的方案数。
多组输入,以EOF结束
每组输入一个整数x(0<x<=112)
每组输出方案数a
1412
10
七个for循环,仔细判断一下
#include<bits/stdc++.h>using namespace std;int main(){int ans=0;int su[6]={2,3,5,7,11,13};int x;int bao,yang,zhai,tan,liu,yan,l;while(cin>>x){ans=0;for(tan=1;tan<=16;tan++){for(yang=tan+1;yang<=16;yang++){if(yang&1);else{for(bao=2;bao<=tan;bao+=2){for(liu=1;liu<=tan;liu++){if(liu<10&&liu&1||liu>=10&&!(liu&1)){for(yan=0;yan<6;yan++){if(su[yan]<=tan){for(l=1;l<=tan;l++){if(yang+tan+bao+yang/2+liu+su[yan]+l==x&&yang/2<=tan){//cout<<bao<<" "<<yang<<" "<<yang/2<<" "<<tan<<" "<<liu<<" "<<su[yan]<<" "<<l<<endl;ans++;}}}}}}}}}}cout<<ans<<endl;}return 0;}
- qduoj 河神的难题 思维 实验室腊新呐 枚举
- qduoj 帅气的HYC的珍珠(前缀和+思维)
- QDUOJ 蒸鱼的一个简单签到题 思维+kmp
- zzulioj1898 985的数字难题(思维)
- zzulioj 1898: 985的数字难题 [思维]
- qduoj 别骂了,不会让你爆零的(思维)
- qduoj 74 码农必修 思维规律
- QDUOJ - kkun的膜神帮
- qduoj 无限的序列
- qduoj GZS的三角形
- HDU 5301 Buildings(思维:一道简单的难题)
- zzuliOJ 1898:985的数字难题(思维)
- 【zzuliOJ】1895 - 985的0-1串难题(思维)
- 【ZZULI】-1896-985的买饮料难题(思维)
- 【ZZULI】-1897-985的红绿灯难题(思维)
- 【ZZULI】-1998-985的数字难题(思维)
- zzulioj 1902: 985的因子对难题 [思维]
- zzulioj1895: 985的0-1串难题(思维)
- 普通视图和物化视图的区别
- (四)、建造者模式
- 数据库基础知识
- php数据替换处理str_replace()函数
- 在java中int类型跟byte数组的转换
- qduoj 河神的难题 思维 实验室腊新呐 枚举
- 用java写websocket客户端
- [AHK]Bing Desktop Wallpaper Changer(必应壁纸随心换)
- JDK动态代理源码分析之二
- 正则表达式匹配
- 深入浅出理解Paxos算法
- 前谷歌首席Java架构师谈如何设优秀的API~
- RAML概述
- 得到-薛兆丰的北大经济学课-0-目录