POJ 3112 Digital Biochemist Circuit

Digital Biochemist Circuit
Time Limit: 1000MS Memory Limit: 65536K
Total Submissions: 884 Accepted: 382

Description

A digital biochemist circuit (DBC) is a device composed of a set of processing nodes. Each processing node consists of a small receptacle for holding biochemist agents. The receptacle is made of a biological substance that works like a digital circuit. Depending on the states of reactions in the receptacle, the substance may generate two levels of voltage. A reader connected to a DBC is capable of reading all processing nodes of the DBC instantaneously, interpreting the two levels of voltage as 0 or 1.

An experiment with the DBC is carried out in the following way. The processing nodes are loaded with the substances of interest and appropriate reagents and, for every fixed time interval (typically several milliseconds), the voltage of processing nodes are read. Thus, the experiment results in a sequence of bit sets (vectors), each corresponding to a measurement of the DBC.

A sequence of 1-bits uninterrupted throughout the time of a processing node is called a run. The length of a run is the number of 1-bits in the sequence (note that the length of runs of an experiment can vary between one and the number of measurements made). One important characteristic of an experiment with the DBC is the number and length of the runs generated. The figure below shows the result of an experiment carried out with a DBC of six processing nodes, on which four measurements are made, containing three runs of length one, one run of length two and one run of length four.

0 1 0 1 1 0
0 0 0 1 0 0
0 1 0 1 0 1
0 1 0 1 0 0

You are contracted to write a program that determines, given the result of an experiment, how many runs of length that is equal to or greater than a certain value are generated.

Input

The input contains several test cases. The first line of test case contains three integers PN and C which indicate the number of processing nodes (1 ≤ P ≤ 1000), the number of measurements made (1 ≤ N ≤ 1000) and the minimum length of runs of interest (1 ≤ C ≤ N), respectively. Each of the next N lines contains P digits {0, 1} separated by a whitespace. The end of the input is indicated by P = N = C = 0.

Output

For each test case in the input your program should produce a single line of output, containing the number of runs of length greater than or equal to C produced by the experiment.

Sample Input

2 2 2
1 1
1 1
4 5 3
0 1 0 1
1 1 1 1
1 0 0 1
1 0 1 1
1 1 0 0
0 0 0

Sample Output

2
2

题目的意思是,有p个  电子元件, 跑n次;  

每行是每次各个电子元件状态.

所以竖着的连续的1,代表某电子元件的runs.  同一个电子元件可以有多个0间隔开的runs;  计算长度大于c 的runs个数


#include<stdio.h>
int mp[2000][2000];
int main()
{
	int p,n,c,i,j,sum,ans;
	 while(scanf("%d%d%d",&p,&n,&c),p||n||c)
	 {
		 for(i=1;i<=n;i++)
		 {
			 for(j=1;j<=p;j++)
			 {
				 scanf("%d",&mp[i][j]);
			 }
		 }
		 ans=0;
		 for(j=1;j<=p;j++)//每列
		 {
			 sum=0;
			 for(i=1;i<=n;i++)
			 {
				 if(mp[i][j]==1)
					 sum++;
				 else
					 sum=0;
				 if(sum==c)
					 ans++;
			 }
		 }
		 printf("%d\n",ans);
	 }
	 return 0;
}

      

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值