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; }
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); }
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; }
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; } }
// 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; }