Beispiel #1
0
int is_ok(int i) {
  int basis10[11];
  int basis2[21];
  int j;
  basis(basis2, 2, i);
  basis(basis10, 10, i);
  for (j=0; j<21; j++) {
    if (basis2[j]==-1) break;
  }
  return is_pal(basis2) && is_pal(basis10);
}
int is_pal(int x,int y){
	int &tp=isp[x][y];
	if(tp!=-1)return tp;
	if(x>=y)return tp=1;
	if(s[x]==s[y])return tp=is_pal(x+1,y-1);
	else return tp=0;
	}
Beispiel #3
0
main () {
    FILE *fin  = fopen ("dualpal.in", "r");
    FILE *fout = fopen ("dualpal.out", "w");
    int n, base, npal;
    char number[33];
    long start, num;

    fscanf (fin, "%d %ld", &n, &start);
    num = start;
    while (n > 0) {
    	num++;
    	npal = 0;
    	for (base = 2; base <= 10; base++) {
    		numtran(num, base, number);
    		if (is_pal(number)) {
    			++npal;
    			if (npal > 1)
    				break;
    		}
    	}
    	if (npal > 1) {
    		n--;
    		fprintf(fout, "%ld\n", num);
    	}
    }
 
    exit (0);
}
Beispiel #4
0
int main() {
    char s[MAX];
    gets(s);
    printf("%s ", s);
    if (is_pal(s, 0, strlen(s) - 1))
        printf("is palindrome.");
    else
        printf("is NOT palindrome.");
    return 0;
}
 int minCut(string s) {
     int n = s.length();
     vector<vector<bool> > is_pal(n+1, vector<bool>(n+1, false));
     init(s, is_pal);
     vector<int> cuts(n+1, -1);
     cuts[0] = 0;
     for (int i = 1; i <= n; ++i)
         for (int j = i-1; j >= 0; --j) if (is_pal[j][i]) {
             if (cuts[i] < 0) cuts[i] = cuts[j] + 1;
             else if (cuts[i] > cuts[j] + 1) cuts[i] = cuts[j] + 1;
         }
     return cuts[n]-1;
 }
int main(){
	int t;
	scanf("%d",&t);
	while(t--){
		scanf("%s",s); 
		int i,j,k;
		int len=strlen(s);
		for(i=0;i<len;i++)g[i].clear();
		for(i=0;i<len;i++)for(j=0;j<len;j++)isp[i][j]=-1;
		for(i=0;i<len;i++)for(j=i;j<len;j++)if(is_pal(i,j))g[i].push_back(j);
		for(i=0;i<len;i++)dp[i]=0;
		dag(0);
	/*	for(i=0;i<len;i++){
			printf("g[%d]:",i);
			for(j=0;j<g[i].size();j++)printf("%d ",g[i][j]);
			printf("\n");
			}
		for(i=0;i<len-1;i++)printf("%d ",dp[i]);*/
		printf("%d\n",dp[0]);
		}
	return 0;
	}
int main(void)
{
	int n, ans;
	
	scanf("%d", &n);
	if (n <= 2)
	{
		ans = 2;
	}
	else
	{
		int i;
		
		if ((n & 1) == 0)
		{
			n++;
		}
		for (i = n; !is_pal(i) || !is_prime(i); i += 2)
			;
		ans = i;
	}
	printf("%d\n", ans);
	return 0;
}
Beispiel #8
0
DirectShowGrabber::DirectShowGrabber(IBaseFilter *filt) {
   HRESULT         hr;

   /* Reference:  various, including 
      - Pesce, Chapter 11
      - http://msdn.microsoft.com/library/default.asp?url=/library/en-us/directshow/htm/samplegrabberfilter.asp
   */

   debug_msg("new DirectShowGrabber()\n");

   crossbar = crossbarCursor = NULL;  

   pCaptureFilter_ = filt;   
   setport("external");

   if( is_pal() ) {
      basewidth_  = PAL_BASE_WIDTH;
      baseheight_ = PAL_BASE_HEIGHT;
   } else {
      basewidth_  = NTSC_BASE_WIDTH;
      baseheight_ = NTSC_BASE_HEIGHT;
   }

   /*
   ZeroMemory(&mt_, sizeof(AM_MEDIA_TYPE));
   mt_.majortype = MEDIATYPE_Video;
   mt_.subtype   = MEDIASUBTYPE_RGB24;
   */

   /*
   mt_.majortype = MEDIATYPE_AnalogVideo;
   mt_.subtype   = MEDIASUBTYPE_AnalogVideo_NTSC_M;
   */

   callback           = new Callback();   
   callback->grabber  = this;     
   debug_msg("DirectShowGrabber::DirectShowGrabber():  callback created, grabber set\n");

   // Create the Filter Graph Manager
   hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,
                         IID_IGraphBuilder, (void **)&pGraph_);
   if (FAILED(hr)) {
   		Grabber::status_=-1;
		return;
   }
   debug_msg("DirectShowGrabber::DirectShowGrabber():  graph instance acquired\n");
   
   // Obtain the interface used to run, stop, and pause the graph
   hr = pGraph_->QueryInterface(IID_IMediaControl, (void **)&pMediaControl_);
   //showErrorMessage(hr);
   if (FAILED(hr)) {
   		Grabber::status_=-1;
		return;
   }
   debug_msg("DirectShowGrabber::DirectShowGrabber():  graph media control interface acquired\n");
   
   // Create the capture graph builder helper object
   hr = CoCreateInstance(CLSID_CaptureGraphBuilder2, NULL, CLSCTX_INPROC_SERVER,
                         IID_ICaptureGraphBuilder2, (void **)&pBuild_);
   //showErrorMessage(hr);
   if (FAILED(hr)) {
   		Grabber::status_=-1;
		return;
   }
   debug_msg("DirectShowGrabber::DirectShowGrabber():  graph builder interface acquired\n");

   // Tell the capture graph builder about the FGM.
   hr = pBuild_->SetFiltergraph(pGraph_);
   //showErrorMessage(hr);
   if (FAILED(hr)) {
   		Grabber::status_=-1;
		return;
   }
   debug_msg("DirectShowGrabber::DirectShowGrabber():  graph associated with builder\n");

   // Add the capture filter to the filter graph
   hr = pGraph_->AddFilter(pCaptureFilter_, L"VicCaptureFilter");
   //showErrorMessage(hr);
   debug_msg("DirectShowGrabber::DirectShowGrabber():  capture filter added to graph\n");

   // Set up the Sample Grabber transform filter
   hr = CoCreateInstance(CLSID_SampleGrabber, NULL, CLSCTX_INPROC_SERVER,
                         IID_IBaseFilter, (LPVOID *)&pGrabberBaseFilter_);
   //showErrorMessage(hr);
   debug_msg("DirectShowGrabber::DirectShowGrabber():  grabber base filter instance acquired\n");

   hr = pGrabberBaseFilter_->QueryInterface(IID_ISampleGrabber, (void**)&pSampleGrabber_);
   //showErrorMessage(hr);
   debug_msg("DirectShowGrabber::DirectShowGrabber():  Sample Grabber interface acquired\n");

   //hr = pSampleGrabber_->SetMediaType(&mt_);                          showErrorMessage(hr);
   hr = pSampleGrabber_->SetOneShot(FALSE);                           //showErrorMessage(hr);
   hr = pSampleGrabber_->SetCallback(callback, 1);                    //showErrorMessage(hr);
   hr = pGraph_->AddFilter(pGrabberBaseFilter_,L"VicSampleGrabber");  //showErrorMessage(hr);

   // Get the Null Renderer DS default filter
   hr = CoCreateInstance(CLSID_NullRenderer, NULL, CLSCTX_INPROC_SERVER,
                         IID_IBaseFilter, (LPVOID *)&pNullBaseFilter_);
   //showErrorMessage(hr);
    if (FAILED(hr)) {
   		Grabber::status_=-1;
		return;
   }
   debug_msg("DirectShowGrabber::DirectShowGrabber():  Null Renderer interface acquired\n");

   // Finally, add the Null Renderer "sink" to the graph
   hr = pGraph_->AddFilter(pNullBaseFilter_,L"VicNullRenderer");
    if (FAILED(hr)) {
   		Grabber::status_=-1;
		return;
   }
   debug_msg("DirectShowGrabber::DirectShowGrabber():  Null Renderer added to graph\n");

   setCaptureOutputFormat();
   
   findCrossbar(pCaptureFilter_);
   routeCrossbar();   

   // We can presumably inspect crossbar==NULL here to determine if we want
   // to change the Sample Grabber media type.
   ZeroMemory(&mt_, sizeof(AM_MEDIA_TYPE));
   mt_.majortype = MEDIATYPE_Video;
   mt_.subtype   = MEDIASUBTYPE_RGB24;
   hr            = pSampleGrabber_->SetMediaType(&mt_);
   //showErrorMessage(hr);

   // Connect the filters   
   hr = pBuild_->RenderStream(&PIN_CATEGORY_CAPTURE, &MEDIATYPE_Video,
                              pCaptureFilter_, pGrabberBaseFilter_, pNullBaseFilter_);
   //showErrorMessage(hr);
   debug_msg("DirectShowGrabber::DirectShowGrabber():  builder render stream\n");
   
   if (FAILED(hr)) {
   		status_=-1;
		return;
   }
}
Beispiel #9
0
// RECURSIVE
int is_pal(char *str, int start, int end) {
    if (start >= end) return 1;
    if (str[start] == str[end])
        return is_pal(str, start + 1, end - 1);
    return 0;
}