{"id":1803,"date":"2026-09-23T15:04:32","date_gmt":"2026-09-23T15:04:32","guid":{"rendered":"https:\/\/accelthinking.com\/?p=1803"},"modified":"2026-09-29T03:16:30","modified_gmt":"2026-09-29T03:16:30","slug":"ccc-2023-j4-s1-trianglane-solution-analysis","status":"publish","type":"post","link":"https:\/\/accelthinking.com\/zh_cn\/ccc-2023-j4-s1-trianglane-solution-analysis\/","title":{"rendered":"CCC 2023 J4\/S1 Trianglane Solution: Perimeter by Counting Shared Edges"},"content":{"rendered":"<style>\nhtml,body,#page{background:#f8fafc!important}.site-header,.site-footer,#masthead,#colophon,.entry-header,.post-navigation,.comments-area{display:none!important}.entry-title{display:none!important}.site-content .ast-container{max-width:100%!important;padding:0!important}.entry-content{margin:0!important;line-height:1.5!important}.site-content,#content,#primary,#main,.ast-plain-container #primary{margin:0!important;padding:0!important;background:#f8fafc}.ast-article-single{padding:0!important}\n.ati-page,.ati-page *{box-sizing:border-box}.entry-content>.ati-page,.ati-page{display:flex!important;flex-direction:column!important;width:100%!important;max-width:none!important;margin-left:0!important;margin-right:0!important;font-family:Inter,Arial,sans-serif;color:#0f172a;background:#f8fafc;font-size:0;line-height:0}.ati-page>p,.ati-page main>p,.ati-footer>p{display:none!important;margin:0!important}.ati-page a{text-decoration:none;color:inherit}.ati-page svg{display:block}.ati-top,.ati-page main,.ati-footer{font-size:16px;line-height:1.5}\n.ati-top{position:relative;z-index:2;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;min-height:76px;padding:0 clamp(22px,6vw,116px);color:#fff;background:#050505;border-bottom:1px solid rgba(255,255,255,.08)}.ati-top>p{display:contents!important}.ati-top br,.ati-nav br{display:none!important}.ati-brand{display:inline-flex;align-items:center;width:max-content;color:#ffc400!important}.ati-logo img{display:block;width:auto;height:38px;max-width:min(260px,42vw);object-fit:contain}.ati-nav{display:flex;gap:clamp(20px,3vw,44px);align-items:center;justify-content:center;font-size:15px;font-weight:600}.ati-nav a{position:relative;padding:28px 0 24px;color:rgba(255,255,255,.86)!important}.ati-nav a:hover,.ati-nav a.active{color:#ffc400!important}.ati-nav a:after{position:absolute;right:0;bottom:19px;left:0;height:2px;content:\"\";background:#ffc400;transform:scaleX(0);transition:transform 160ms ease}.ati-nav a:hover:after,.ati-nav a.active:after{transform:scaleX(1)}.ati-header-cta{justify-self:end;display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 20px;color:#050505!important;background:#ffc400;border-radius:8px;font-size:14px;font-weight:800}\n.ati-page{--hero-pattern:radial-gradient(circle at 82% 24%,rgba(255,196,0,.18) 0 2px,transparent 3px),linear-gradient(135deg,rgba(255,255,255,.07) 1px,transparent 1px);--hero-pattern-size:90px 90px,38px 38px;--hero-pattern-opacity:.55}.ati-solutions{--hero-pattern:radial-gradient(circle at 25px 25px,rgba(255,196,0,.2) 0 2px,transparent 3px),linear-gradient(90deg,rgba(255,196,0,.09) 1px,transparent 1px),linear-gradient(0deg,rgba(255,255,255,.06) 1px,transparent 1px);--hero-pattern-size:96px 96px,96px 96px,96px 96px}.ati-cp-academy{--hero-pattern:radial-gradient(circle at 20px 20px,rgba(255,196,0,.26) 0 3px,transparent 4px),radial-gradient(circle at 74px 58px,rgba(20,184,166,.18) 0 2px,transparent 3px),linear-gradient(135deg,transparent 46%,rgba(255,196,0,.11) 47% 48%,transparent 49%);--hero-pattern-size:112px 112px,112px 112px,56px 56px}.ati-it-consulting{--hero-pattern:linear-gradient(90deg,transparent 0 28px,rgba(20,184,166,.14) 29px 30px,transparent 31px 72px),linear-gradient(0deg,transparent 0 28px,rgba(255,196,0,.1) 29px 30px,transparent 31px 72px),radial-gradient(circle at 30px 30px,rgba(20,184,166,.22) 0 2px,transparent 3px);--hero-pattern-size:72px 72px,72px 72px,72px 72px}.ati-about-page{--hero-pattern:linear-gradient(135deg,rgba(255,196,0,.12) 0 2px,transparent 2px 28px),radial-gradient(circle at 85% 28%,rgba(255,255,255,.12) 0 2px,transparent 3px);--hero-pattern-size:42px 42px,96px 96px}.ati-contact{--hero-pattern:radial-gradient(circle at 78% 44%,transparent 0 34px,rgba(255,196,0,.14) 35px 36px,transparent 37px 70px,rgba(20,184,166,.12) 71px 72px,transparent 73px),linear-gradient(135deg,rgba(255,255,255,.06) 1px,transparent 1px);--hero-pattern-size:220px 220px,42px 42px}.ati-cp-weekly-challenge{--hero-pattern:radial-gradient(circle at 18px 18px,rgba(255,196,0,.2) 0 2px,transparent 3px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);--hero-pattern-size:52px 52px,104px 104px}.ati-hero{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:clamp(28px,6vw,90px);align-items:center;min-height:430px;padding:76px clamp(22px,10vw,160px);overflow:hidden;color:#fff;background:linear-gradient(90deg,rgba(0,0,0,.92),rgba(0,0,0,.6)),var(--hero) center\/cover no-repeat}.ati-hero:after{position:absolute;inset:0;content:\"\";background:var(--hero-pattern);background-size:var(--hero-pattern-size);opacity:var(--hero-pattern-opacity);mix-blend-mode:screen;pointer-events:none}.ati-hero>*{position:relative;z-index:1}.ati-label{margin:0 0 12px!important;color:#ffb000!important;font-size:13px!important;font-weight:800!important;letter-spacing:.08em;text-transform:uppercase}.ati-hero h1{max-width:840px;margin:0!important;color:#fff!important;font-size:clamp(42px,5vw,72px)!important;line-height:1.03!important;font-weight:800!important;letter-spacing:0}.ati-hero-title-line{display:block;color:#fff!important}.ati-hero-title-line.accent{color:#ffc400!important}.ati-word{display:inline-block;white-space:nowrap}.ati-word:not(:last-child){margin-right:.32em}.ati-letter{display:inline-block;opacity:0;transform:translateY(.34em);animation:ati-letter-in 520ms cubic-bezier(.2,.8,.2,1) forwards;animation-delay:calc(38ms * var(--i))}@keyframes ati-letter-in{0%{opacity:0;transform:translateY(.34em)}100%{opacity:1;transform:translateY(0)}}@media(prefers-reduced-motion:reduce){.ati-letter{opacity:1;transform:none;animation:none}}.ati-hero p:not(.ati-label){max-width:700px;margin:22px 0 0!important;color:rgba(255,255,255,.86)!important;font-size:19px!important}.ati-side{padding:28px;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:8px;backdrop-filter:blur(18px)}.ati-side strong{display:block;color:#ffc400;font-size:22px;line-height:1.15;overflow-wrap:anywhere}.ati-side p{margin:12px 0 0!important;color:rgba(255,255,255,.78)!important}.ati-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}.ati-btn{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 28px;border-radius:8px;font-size:15px;font-weight:800}.ati-primary{color:#050505!important;background:linear-gradient(135deg,#ffc400,#ffb000);box-shadow:0 18px 38px rgba(255,196,0,.25)}.ati-secondary{color:#fff!important;border:1px solid #ffc400}\n.ati-section,.ati-about{max-width:1320px;margin:0 auto;padding:72px clamp(22px,6vw,64px)}.ati-heading{display:grid;grid-template-columns:.8fr 1.2fr;gap:40px;align-items:end;margin-bottom:32px}.ati-heading h2,.ati-split h2{margin:0!important;color:#050505!important;font-size:clamp(30px,4vw,48px)!important;line-height:1.08!important}.ati-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.ati-grid.five{grid-template-columns:repeat(5,minmax(0,1fr))}.ati-card{padding:26px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 18px 45px rgba(15,23,42,.06)}.ati-card .ati-num{color:#b47c00;font-size:14px;font-weight:800;text-transform:uppercase}.ati-card h3{margin:12px 0 0!important;color:#050505!important;font-size:22px!important;line-height:1.12!important}.ati-card p{margin:12px 0 0!important;color:#172033!important}.ati-task-card h3{margin:0!important}.ati-task-card h3 .ati-num{display:inline;color:#b47c00;font-size:22px;line-height:1.12}.ati-task-card p{margin-top:14px!important}.ati-split{max-width:1320px;margin:0 auto;padding:72px clamp(22px,6vw,64px);display:grid;grid-template-columns:.85fr 1.15fr;gap:52px;border-top:1px solid #e2e8f0}.ati-list{display:grid;gap:14px}.ati-list article{padding:20px;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.ati-list b{display:block;color:#050505;font-size:18px}.ati-list span{display:block;margin-top:6px;color:#172033}.ati-dark{max-width:none;background:linear-gradient(135deg,#050505,#0f172a);color:#fff;border:0;padding-left:clamp(22px,10vw,160px);padding-right:clamp(22px,10vw,160px)}.ati-dark h2,.ati-dark p{color:#fff!important}.ati-dark .ati-list article{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}.ati-dark .ati-list b{color:#ffc400}.ati-dark .ati-list span{color:rgba(255,255,255,.78)}.ati-path{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:16px}.ati-benefits{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.ati-benefits span{padding:18px 20px;color:#0f3d37;background:rgba(20,184,166,.1);border:1px solid rgba(20,184,166,.24);border-radius:8px;font-weight:800}.ati-side .ati-side-link{display:inline-flex;margin-top:18px;min-height:42px;padding:0 16px;align-items:center;justify-content:center;color:#050505!important;background:#ffc400;border-radius:8px;font-size:14px;font-weight:800}.ati-challenge-entry{max-width:1320px;margin:0 auto;padding:0 clamp(22px,6vw,64px) 72px}.ati-challenge-entry+.ati-challenge-entry{padding-top:0}.ati-challenge-panel{display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center;padding:28px 30px;color:#fff;background:linear-gradient(135deg,#050505,#111827);border:1px solid rgba(255,196,0,.36);border-radius:8px;box-shadow:0 24px 55px rgba(15,23,42,.16)}.ati-challenge-entry h2{margin:0!important;color:#fff!important;font-size:clamp(24px,3vw,36px)!important;line-height:1.08!important}.ati-challenge-entry p{margin:8px 0 0!important;color:#dbe4ef!important}.ati-challenge-entry a{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 20px;color:#050505!important;background:#ffc400;border-radius:8px;font-weight:800;white-space:nowrap}.ati-posts{display:grid;gap:18px}.ati-posts article{padding:26px;background:#fff;border:1px solid #e2e8f0;border-radius:8px}.ati-posts h2{margin:0!important;color:#050505!important;font-size:28px!important}.ati-tag{color:#b47c00;font-size:13px;font-weight:800;text-transform:uppercase}\n.ati-assessment{display:grid;gap:18px}.ati-assessment-frame{display:block;width:100%;min-height:3300px;border:0;background:#f8fafc}.ati-embed{overflow:hidden;border:1px solid #1e293b;border-radius:8px;background:#050505;box-shadow:0 18px 45px rgba(15,23,42,.12)}.ati-embed iframe{display:block;width:100%;min-height:760px;border:0}.ati-levels{display:grid;gap:10px;margin:0;padding:0;list-style:none}.ati-levels li{padding:14px 16px;background:#fff;border:1px solid #e2e8f0;border-radius:8px;color:#172033}.ati-task-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}@media(max-width:800px){.ati-task-grid{grid-template-columns:1fr}.ati-assessment-frame{min-height:4300px}}\nbody .ati-wpforms .wpforms-container{margin:0!important}body .ati-wpforms form,body .ati-wpforms .wpforms-field-container{display:flex!important;flex-direction:column!important}body .ati-wpforms .wpforms-field{padding:10px 0 16px!important}body .ati-wpforms .wpforms-field.wpforms-field-text{display:none!important}body .ati-wpforms .wpforms-field.wpforms-field-select{order:-10!important}body .ati-wpforms .wpforms-field-label{font-weight:800!important;color:#050505!important}body .ati-wpforms .wpforms-field-row{max-width:100%!important}body .ati-wpforms .wpforms-field-row-block{width:100%!important;padding:0!important;margin-bottom:12px!important}body .ati-wpforms input,body .ati-wpforms textarea,body .ati-wpforms select{width:100%!important;max-width:100%!important;min-height:48px!important;padding:12px 14px!important;border:1px solid #e2e8f0!important;border-radius:8px!important;background:#f8fafc!important;color:#0f172a!important;font:inherit!important}body .ati-wpforms select{appearance:auto!important}body .ati-wpforms button[type=submit]{min-height:52px!important;padding:0 26px!important;border:0!important;border-radius:8px!important;color:#050505!important;background:linear-gradient(135deg,#ffc400,#ffb000)!important;box-shadow:0 18px 38px rgba(255,196,0,.24)!important;font-weight:800!important}\n#wpforms-76-field_5-container,#wpforms-76-field_6-container{display:none!important}#wpforms-76-field_4-container{order:-10!important}\n.ati-challenge-query .wp-block-post-template,.ati-challenge-posts{display:grid!important;gap:18px!important;padding:0!important;margin:0!important;list-style:none!important}.ati-challenge-query .wp-block-post,.ati-challenge-posts li{padding:26px!important;background:#fff!important;border:1px solid #e2e8f0!important;border-radius:8px!important;box-shadow:0 18px 45px rgba(15,23,42,.06)}.ati-challenge-query h2{margin:0!important}.ati-challenge-query h2 a,.ati-challenge-posts a{display:block;color:#050505!important;font-size:clamp(23px,2.8vw,31px);font-weight:800;line-height:1.12}.ati-challenge-query h2 a:hover,.ati-challenge-posts a:hover{color:#b47c00!important}.ati-challenge-query time,.ati-challenge-posts time{display:block;margin-top:10px;color:#b47c00;font-size:13px;font-weight:800;text-transform:uppercase}.ati-challenge-query .wp-block-post-excerpt,.ati-challenge-posts .wp-block-latest-posts__post-excerpt{margin:12px 0 0!important;color:#172033!important;font-size:16px;line-height:1.55}.ati-challenge-query .wp-block-post-excerpt__more-link{display:inline-flex;margin-top:14px;color:#b47c00!important;font-weight:800}.ati-article{max-width:1080px;margin:0 auto;padding:72px clamp(22px,6vw,64px);font-size:18px;line-height:1.7}.ati-article-card{padding:clamp(28px,5vw,56px);background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 18px 45px rgba(15,23,42,.06)}.ati-article-card p{margin:0 0 22px!important;color:#172033!important}.ati-article-card h2{margin:42px 0 14px!important;color:#050505!important;font-size:clamp(25px,3vw,36px)!important;line-height:1.1!important}.ati-article-card ul{margin:0 0 24px 22px!important;color:#172033}.ati-article-card li{margin:8px 0}.ati-article-card pre{overflow:auto;margin:16px 0 28px!important;padding:20px!important;color:#f8fafc!important;background:#0b1020!important;border:1px solid #1e293b;border-radius:8px;font-size:14px;line-height:1.55}.ati-article-card pre code{display:block!important;padding:0!important;color:#f8fafc!important;background:transparent!important;border:0!important;font-family:Menlo,Consolas,monospace;white-space:pre}.ati-back-link{display:inline-flex;margin-bottom:18px;color:#b47c00!important;font-size:14px;font-weight:800}\n.ati-footer{display:grid;grid-template-columns:1fr auto 1fr;gap:24px;align-items:center;min-height:90px;padding:22px clamp(22px,10vw,160px);color:#f8fafc;background:#050505;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ati-footer .ati-logo img{height:36px;max-width:240px}.ati-footer a{color:#f8fafc!important}.ati-footer a:hover{color:#ffc400!important}.ati-footer nav{display:flex;flex-wrap:wrap;gap:24px;justify-content:center;font-size:14px;font-weight:600;line-height:1.35}.ati-footer address{display:grid;gap:5px;justify-self:end;color:#dbe4ef;font-size:14.5px;font-weight:500;line-height:1.35;font-style:normal;margin:0!important}.ati-footer address a{font-weight:700}.ati-footer address span{color:#cbd5e1}\n.ati-menu-toggle,.ati-menu-button{display:none}@media(max-width:1100px){.ati-top,.ati-hero,.ati-heading,.ati-grid,.ati-grid.five,.ati-split,.ati-path,.ati-footer,.ati-challenge-panel{grid-template-columns:1fr}.ati-header-cta,.ati-footer address{justify-self:start}.ati-nav{justify-content:flex-start;flex-wrap:wrap}.ati-split{gap:30px}.ati-benefits{grid-template-columns:1fr}.ati-challenge-entry a{justify-self:start}}@media(max-width:700px){.ati-top{display:grid!important;grid-template-columns:1fr auto!important;align-items:center!important;gap:0!important;padding:16px 22px!important}.ati-logo img{height:34px}.ati-menu-button{display:grid;gap:5px;place-content:center;width:44px;height:40px;color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:8px;cursor:pointer}.ati-menu-button span{display:block;width:20px;height:2px;background:#ffc400;border-radius:999px}.ati-nav{display:none!important;grid-column:1\/-1;width:100%;gap:0;margin-top:14px;padding:10px 0;border-top:1px solid rgba(255,255,255,.1)}.ati-nav a{padding:11px 0!important}.ati-nav a:after{bottom:5px}.ati-header-cta{display:none!important}.ati-menu-toggle:checked~.ati-nav{display:grid!important}.ati-menu-toggle:checked~.ati-header-cta{display:inline-flex!important;grid-column:1\/-1;justify-self:start;margin-top:12px}.ati-hero{min-height:auto;padding:60px 22px}.ati-hero h1{font-size:40px!important}.ati-footer nav{justify-content:flex-start}}\n@media(max-width:1100px){.ati-top{display:grid!important;grid-template-columns:1fr auto!important;align-items:center!important;gap:0!important;padding:16px 22px!important}.ati-logo img{height:34px}.ati-menu-button{display:grid!important;gap:5px;place-content:center;width:44px;height:40px;color:#fff;border:1px solid rgba(255,255,255,.22);border-radius:8px;cursor:pointer}.ati-menu-button span{display:block;width:20px;height:2px;background:#ffc400;border-radius:999px}.ati-nav{display:none!important;grid-column:1\/-1;width:100%;gap:0;margin-top:14px;padding:10px 0;border-top:1px solid rgba(255,255,255,.1)}.ati-nav a{padding:11px 0!important}.ati-nav a:after{bottom:5px}.ati-header-cta{display:none!important}.ati-menu-toggle:checked~.ati-nav{display:grid!important}.ati-menu-toggle:checked~.ati-header-cta{display:inline-flex!important;grid-column:1\/-1;justify-self:start;margin-top:12px}}\n.ati-mobile-menu{display:none}.ati-mobile-menu summary{list-style:none}.ati-mobile-menu summary::-webkit-details-marker{display:none}@media(max-width:1100px){.ati-mobile-menu{display:block!important;position:absolute!important;top:18px!important;right:22px!important;z-index:9999!important}.ati-mobile-menu summary{display:grid!important;gap:5px;place-content:center;width:44px;height:40px;border:1px solid rgba(255,255,255,.22);border-radius:8px;background:#050505;cursor:pointer}.ati-mobile-menu summary span{display:block;width:20px;height:2px;background:#ffc400;border-radius:999px}.ati-mobile-menu summary:before{display:block;width:20px;height:2px;content:\"\";background:#ffc400;border-radius:999px;box-shadow:0 7px 0 #ffc400,0 14px 0 #ffc400}.ati-mobile-menu summary span{display:none}.ati-mobile-menu[open] summary{border-color:rgba(255,196,0,.62);background:rgba(255,196,0,.1)}.ati-mobile-panel{position:absolute;top:52px;right:0;display:grid;gap:2px;width:min(78vw,320px);padding:12px;background:#050505;border:1px solid rgba(255,255,255,.14);border-radius:8px;box-shadow:0 24px 60px rgba(0,0,0,.46)}.ati-mobile-panel a{display:block;padding:12px 14px;color:#f8fafc!important;border-radius:6px;font-size:15px;font-weight:800;line-height:1.2}.ati-mobile-panel a.active,.ati-mobile-panel a:hover{color:#ffc400!important;background:rgba(255,255,255,.06)}.ati-mobile-panel .ati-mobile-cta{margin-top:6px;color:#050505!important;background:#ffc400;text-align:center}.ati-mobile-panel .ati-mobile-cta:hover{color:#050505!important;background:#ffcf33}}\n.ati-mobile-menu-button{position:absolute!important;top:18px!important;right:22px!important;z-index:10000!important;display:grid!important;place-content:center;width:44px;height:40px;color:#ffc400!important;border:1px solid rgba(255,255,255,.24);border-radius:8px;background:#050505;font-size:27px!important;font-weight:800;line-height:1;text-decoration:none!important}.ati-mobile-menu-button:before{display:none!important}.ati-mobile-nav-panel{display:none;position:absolute!important;top:70px!important;right:22px!important;z-index:10000!important;width:min(78vw,320px);padding:12px;background:#050505;border:1px solid rgba(255,255,255,.14);border-radius:8px;box-shadow:0 24px 60px rgba(0,0,0,.46)}.ati-mobile-nav-panel:target{display:grid!important;gap:2px}.ati-mobile-nav-panel a{display:block;padding:12px 14px;color:#f8fafc!important;border-radius:6px;font-size:15px;font-weight:800;line-height:1.2}.ati-mobile-nav-panel a.active,.ati-mobile-nav-panel a:hover{color:#ffc400!important;background:rgba(255,255,255,.06)}.ati-mobile-nav-panel .ati-mobile-cta{margin-top:6px;color:#050505!important;background:#ffc400;text-align:center}.ati-mobile-nav-panel .ati-mobile-close{color:#94a3b8!important;text-align:center;font-size:13px}@media(min-width:1101px){.ati-mobile-menu-button,.ati-mobile-nav-panel{display:none!important}}@media(max-width:1100px){.ati-mobile-menu{display:none!important}}\n.trp-language-switcher.trp-floating-switcher{position:fixed!important;top:auto!important;right:22px!important;bottom:22px!important;z-index:10001!important;width:auto!important;min-width:118px!important;--bottom:22px!important;--right:22px!important;--border-radius:8px!important;--bg:#050505!important;--bg-hover:rgba(255,255,255,.08)!important;--text:#f8fafc!important;--text-hover:#ffc400!important;--border:1px solid rgba(255,255,255,.2)!important}.trp-language-switcher .trp-language-switcher-inner{background:#050505!important;border-color:rgba(255,255,255,.2)!important;border-radius:8px!important;box-shadow:0 18px 42px rgba(0,0,0,.28)!important}.trp-language-switcher .trp-language-item{color:#f8fafc!important;font-weight:800!important}.trp-language-switcher .trp-language-item:hover{color:#ffc400!important;background:rgba(255,255,255,.08)!important}.trp-language-switcher .trp-flag-image{display:none!important}.trp-language-switcher .trp-language-item-name{margin-left:0!important}.ati-header-cta{margin-right:0}@media(max-width:1100px){.trp-language-switcher.trp-floating-switcher{right:18px!important;bottom:18px!important;min-width:118px!important;--bottom:18px!important;--right:18px!important}}\n<\/style>\n<style>\n.ati-article-shell{max-width:980px;margin:0 auto;padding:72px clamp(22px,6vw,64px)}\n.ati-article-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 18px 45px rgba(15,23,42,.06);padding:clamp(26px,5vw,58px)}\n.ati-article-meta{display:flex;flex-wrap:wrap;gap:10px 14px;margin:18px 0 0;color:rgba(255,255,255,.78);font-size:14px;font-weight:700}\n.ati-article-content{color:#172033;font-size:18px;line-height:1.72}\n.ati-article-content p{margin:0 0 1.1em!important;color:#172033!important}\n.ati-article-content h2{margin:2em 0 .65em!important;color:#050505!important;font-size:clamp(26px,3vw,36px)!important;line-height:1.12!important}\n.ati-article-content h3{margin:1.45em 0 .45em!important;color:#050505!important;font-size:22px!important;line-height:1.2!important}\n.ati-article-content ul,.ati-article-content ol{margin:0 0 1.2em 1.4em!important;padding:0!important}\n.ati-article-content li{margin:.35em 0!important}\n.ati-article-content pre{margin:1.4em 0!important;padding:18px 20px!important;overflow:auto;color:#e5e7eb;background:#0f172a;border-radius:8px;line-height:1.55;font-size:14px}\n.ati-article-content code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,\"Liberation Mono\",monospace}\n.ati-article-content p code,.ati-article-content li code{padding:.1em .32em;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:5px;color:#0f172a;font-size:.92em}\n.ati-article-content a{color:#b47c00!important;font-weight:800;text-decoration:none}\n.ati-article-content a:hover{text-decoration:underline}\n.ati-article-back{margin-top:28px;padding-top:22px;border-top:1px solid #e2e8f0}\n@media(max-width:800px){.ati-article-shell{padding:44px 18px}.ati-article-card{padding:24px 18px}.ati-article-content{font-size:16px}.ati-article-content pre{font-size:13px}}\n<\/style>\n<div class=\"ati-page ati-resource-post\" style=\"--hero:url(https:\/\/i0.wp.com\/accelthinking.com\/wp-content\/uploads\/2026\/06\/hero-technology-education-51.png?w=1600&amp;quality=85&amp;ssl=1)\">\n<header class=\"ati-top\">\n      <a class=\"ati-brand ati-logo\" href=\"\/zh_cn\/\" aria-label=\"Accel Thinking home\"><img loading=\"lazy\" decoding=\"async\" height=\"63\" width=\"366\" src=\"https:\/\/i0.wp.com\/accelthinking.com\/wp-content\/uploads\/2026\/06\/logo-dark-cropped-51.png?w=480&amp;quality=85&amp;ssl=1\" alt=\"Accel Thinking\"><\/a><br>\n      <input class=\"ati-menu-toggle\" id=\"ati-menu-post\" type=\"checkbox\" aria-label=\"Toggle navigation menu\"><br>\n      <label class=\"ati-menu-button\" for=\"ati-menu-post\" aria-hidden=\"true\"><span><\/span><span><\/span><span><\/span><\/label>\n<details class=\"ati-mobile-menu\">\n<summary aria-label=\"Open navigation menu\"><span><\/span><span><\/span><span><\/span><\/summary>\n<div class=\"ati-mobile-panel\"><a class=\"\" href=\"\/zh_cn\/\">\u9996\u9875<\/a><a class=\"\" href=\"\/zh_cn\/northstar\/\">\u5317\u6781\u661f<\/a><a class=\"\" href=\"\/zh_cn\/learning\/\">\u5b66\u4e60\u8def\u5f84<\/a><a class=\"active\" href=\"\/zh_cn\/resources\/\">\u8d44\u6e90\u6587\u7ae0<\/a><a class=\"\" href=\"\/zh_cn\/about\/\">\u5173\u4e8e\u6211\u4eec<\/a><a class=\"\" href=\"\/zh_cn\/contact\/\">\u8054\u7cfb\u6211\u4eec<\/a><a class=\"ati-mobile-cta\" href=\"\/zh_cn\/northstar\/\">\u5f00\u59cb\u5317\u6781\u661f\u6d4b\u8bc4<\/a><\/div>\n<\/details>\n<p>      <a class=\"ati-mobile-menu-button\" href=\"#ati-mobile-nav-post\" aria-label=\"Open navigation menu\">\u2630<\/a><\/p>\n<nav id=\"ati-mobile-nav-post\" class=\"ati-mobile-nav-panel\"><a class=\"\" href=\"\/zh_cn\/\">\u9996\u9875<\/a><a class=\"\" href=\"\/zh_cn\/northstar\/\">\u5317\u6781\u661f<\/a><a class=\"\" href=\"\/zh_cn\/learning\/\">\u5b66\u4e60\u8def\u5f84<\/a><a class=\"active\" href=\"\/zh_cn\/resources\/\">\u8d44\u6e90\u6587\u7ae0<\/a><a class=\"\" href=\"\/zh_cn\/about\/\">\u5173\u4e8e\u6211\u4eec<\/a><a class=\"\" href=\"\/zh_cn\/contact\/\">\u8054\u7cfb\u6211\u4eec<\/a><a class=\"ati-mobile-cta\" href=\"\/zh_cn\/northstar\/\">\u5f00\u59cb\u5317\u6781\u661f\u6d4b\u8bc4<\/a><a class=\"ati-mobile-close\" href=\"#\">\u5173\u95ed<\/a><\/nav>\n<nav class=\"ati-nav\"><a class=\"\" href=\"\/zh_cn\/\">\u9996\u9875<\/a><a class=\"\" href=\"\/zh_cn\/northstar\/\">\u5317\u6781\u661f<\/a><a class=\"\" href=\"\/zh_cn\/learning\/\">\u5b66\u4e60\u8def\u5f84<\/a><a class=\"active\" href=\"\/zh_cn\/resources\/\">\u8d44\u6e90\u6587\u7ae0<\/a><a class=\"\" href=\"\/zh_cn\/about\/\">\u5173\u4e8e\u6211\u4eec<\/a><a class=\"\" href=\"\/zh_cn\/contact\/\">\u8054\u7cfb\u6211\u4eec<\/a><\/nav>\n<p>      <a class=\"ati-header-cta\" href=\"\/zh_cn\/northstar\/\">\u5f00\u59cb\u5317\u6781\u661f\u6d4b\u8bc4<\/a><br>\n    <\/p><\/header>\n<p>    <main><\/main><\/p>\n<section class=\"ati-hero ati-lang-en\">\n<div>\n<p class=\"ati-label\">CP \u6bcf\u5468\u7f16\u7a0b\u6311\u6218<\/p>\n<h1 aria-label=\"CCC 2023 J4\/S1 Trianglane \u9898\u89e3\uff1a\u901a\u8fc7\u7edf\u8ba1\u5171\u7528\u8fb9\u8ba1\u7b97\u5468\u957f\">CCC 2023 J4\/S1 Trianglane \u9898\u89e3\uff1a\u901a\u8fc7\u7edf\u8ba1\u5171\u7528\u8fb9\u8ba1\u7b97\u5468\u957f<\/h1>\n<p>\u901a\u8fc7\u5468\u957f\u8ba1\u7b97\u3001\u5171\u7528\u8fb9\u3001\u5947\u5076\u6027\u4ee5\u53ca O(C) \u7684 Python \u548c C++ \u89e3\u6cd5\u5b66\u4e60 CCC 2023 J4\/S1 Trianglane\u3002<\/p>\n<div class=\"ati-article-meta\"><span>\u4f5c\u8005\uff1aBerny<\/span><span>September 23, 2026<\/span><\/div>\n<\/div>\n<aside class=\"ati-side\"><strong>Perimeter<br>Shared Edges<br>O(C)<\/strong>\n<p>Turn a geometric picture into a precise local-contribution formula.<\/p>\n<\/aside>\n<\/section>\n<section class=\"ati-hero ati-lang-zh\">\n<div>\n<p class=\"ati-label\">CP \u6bcf\u5468\u7f16\u7a0b\u6311\u6218<\/p>\n<h1 aria-label=\"CCC 2023 J4\/S1 Trianglane \u9898\u89e3\uff1a\u4ece\u4e09\u89d2\u5f62\u5468\u957f\u5230\u5171\u7528\u8fb9\u8ba1\u6570\">CCC 2023 J4\/S1 Trianglane \u9898\u89e3\uff1a\u4ece\u4e09\u89d2\u5f62\u5468\u957f\u5230\u5171\u7528\u8fb9\u8ba1\u6570<\/h1>\n<p>\u7528\u5c40\u90e8\u8d21\u732e\u548c\u5171\u7528\u8fb9\u8ba1\u6570\uff0c\u628a\u4e09\u89d2\u5f62\u5df7\u9053\u5468\u957f\u8f6c\u5316\u4e3a O(C) \u7684\u7ebf\u6027\u626b\u63cf\u3002<\/p>\n<div class=\"ati-article-meta\"><span>\u4f5c\u8005\uff1aBerny<\/span><span>2026 \u5e74 9 \u6708 23 \u65e5<\/span><\/div>\n<\/div>\n<aside class=\"ati-side\"><strong>\u5468\u957f\u8ba1\u6570<br>\u5171\u7528\u8fb9<br>O(C)<\/strong>\n<p>\u628a\u51e0\u4f55\u56fe\u5f62\u8f6c\u5316\u4e3a\u51c6\u786e\u3001\u53ef\u9a8c\u8bc1\u7684\u5c40\u90e8\u8d21\u732e\u516c\u5f0f\u3002<\/p>\n<\/aside>\n<\/section>\n<section class=\"ati-article-shell\">\n<article class=\"ati-article-card\">\n<div class=\"ati-share-tools\" data-ati-share>\n<div class=\"ati-share-copy\">\n<p class=\"ati-share-kicker\">\u5206\u4eab\u8fd9\u7bc7\u6587\u7ae0<\/p>\n<p class=\"ati-share-note\">\u590d\u5236\u94fe\u63a5\u3001\u4f7f\u7528\u624b\u673a\u5206\u4eab\u3001\u7528\u5fae\u4fe1\u626b\u7801\uff0c\u6216\u901a\u8fc7\u90ae\u4ef6\u53d1\u9001\u3002<\/p>\n<\/div>\n<div class=\"ati-share-actions\">\n    <button type=\"button\" data-share-native>\u5206\u4eab<\/button><br>\n    <button type=\"button\" data-share-copy-link>\u590d\u5236\u94fe\u63a5<\/button><br>\n    <button type=\"button\" data-share-wechat>\u5fae\u4fe1\u4e8c\u7ef4\u7801<\/button><br>\n    <a data-share-email>\u90ae\u7bb1<\/a>\n  <\/div>\n<div class=\"ati-share-qr\" data-share-qr hidden>\n    <img loading=\"lazy\" data-share-qr-img alt=\"QR code for sharing this article\">\n<p>\u4f7f\u7528\u5fae\u4fe1\u626b\u7801\uff0c\u7136\u540e\u5206\u4eab\u6587\u7ae0\u94fe\u63a5\u3002<\/p>\n<\/div>\n<p class=\"ati-share-status\" data-share-status aria-live=\"polite\">\n<\/p><\/div>\n<div class=\"ati-article-content ati-lang-en\">\n<article class=\"ati-post-article\">\n<p>If every black triangular tile were isolated, the answer would be immediate: each triangle has three sides, so we would multiply the number of black tiles by three. The only complication is that two adjacent black triangles may share a side. That shared side is counted twice in the initial total, but it needs no warning tape at all.<\/p>\n<p>Trianglane is therefore a counting problem rather than a difficult geometry problem. Start with the full perimeter of every black triangle, then subtract two for every shared edge between black triangles.<\/p>\n<h2>\u672c\u9898\u5728 CCC \u6570\u636e\u7ed3\u6784\u4e0e\u7b97\u6cd5\u8def\u7ebf\u56fe\u4e2d\u7684\u4f4d\u7f6e<\/h2>\n<ul>\n<li>\u9898\u76ee\u7ea7\u522b\uff1aJunior J4\uff0fSenior S1<\/li>\n<li>\u6838\u5fc3\u65b9\u6cd5\uff1a\u7f51\u683c\u76f8\u90bb\u5173\u7cfb\u3001\u5468\u957f\u7edf\u8ba1\u3001\u5c40\u90e8\u8d21\u732e\u8ba1\u6570<\/li>\n<li>\u524d\u7f6e\u77e5\u8bc6\uff1a\u6570\u7ec4\uff0f\u5217\u8868\u3001\u5faa\u73af\u3001\u5947\u5076\u6027\u3001\u8fb9\u754c\u5224\u65ad\u548c\u7d2f\u8ba1\u7edf\u8ba1<\/li>\n<li>What this teaches: Break a global geometric quantity into local contributions, then remove the duplicated contribution caused by adjacent cells.<\/li>\n<li>\u76f8\u5173\u5e94\u7528\uff1a\u5c9b\u5c7f\u5468\u957f\u3001\u7f51\u683c\u8fb9\u8ba1\u6570\u3001\u5c40\u90e8\u8d21\u732e\u6cd5\u548c\u56fe\u7684\u5ea6\u6570\u7edf\u8ba1<\/li>\n<\/ul>\n<h2>What to Study Next<\/h2>\n<ul>\n<li>Related CP Weekly problems: <a href=\"\/zh_cn\/ccc-2021-j5-s2-modern-art-solution-analysis\/\">CCC 2021 J5\/S2 Modern Art<\/a> for parity counting, <a href=\"\/zh_cn\/ccc-2024-j5-harvest-waterloo-solution-analysis\/\">CCC 2024 J5 Harvest Waterloo<\/a> for grid connected components, and <a href=\"\/zh_cn\/ccc-2026-j4-snail-path-solution-analysis\/\">CCC 2026 J4 Snail Path<\/a> for grid simulation.<\/li>\n<li>Related Python \/ C++ foundations: one-dimensional lists\/vectors, loops, <code>% 2<\/code> parity checks, boundary checks, and running totals.<\/li>\n<li>Related DSA roadmap article: CCC Grid Problems: from local adjacency to graph search (planned).<\/li>\n<\/ul>\n<h2>What the Problem Is Asking<\/h2>\n<p>The laneway contains two rows of equilateral triangular tiles, with <code>C<\/code> tiles in each row. Every side is one metre long. Tile orientation alternates: the first tile points upward, and every adjacent tile points in the opposite direction.<\/p>\n<p>The input uses <code>1<\/code> for a black wet tile and <code>0<\/code> for a white dry tile. Bocchi needs warning tape around the outer perimeter of every wet area.<\/p>\n<p>If two black triangles share a complete side, that side is inside a wet area and needs no tape. If two triangles meet only at a vertex, they are not adjacent and their perimeters do not change.<\/p>\n<p>The largest official bound is <code>C &lt;= 200000<\/code>, so we need a linear-time solution.<\/p>\n<h2>Where Beginners Often Get Stuck<\/h2>\n<p>The first trap is subtracting only one for a shared edge. Two isolated triangles contribute six sides in total. Their shared side appears once in each triangle's contribution, so it was counted twice. Since neither copy belongs to the outside perimeter, one shared edge reduces the answer by two.<\/p>\n<p>The second trap is cross-row adjacency. Horizontally adjacent tiles in the same row can share a side. Between the two rows, however, a shared side is possible only at zero-based even columns: <code>0, 2, 4, ...<\/code>. At odd columns, the two tiles meet only at a point.<\/p>\n<p>The third trap is double counting. If every tile checks both its left and right neighbor, the same horizontal shared edge is found twice. Checking only each pair <code>(i, i + 1)<\/code> counts every horizontal edge exactly once.<\/p>\n<h2>Core Algorithm Idea<\/h2>\n<p>Let:<\/p>\n<pre><code class=\"language-text\">B = number of black triangles\nE = number of shared edges between two black triangles<\/code><\/pre>\n<p>If all black triangles were separate, their total perimeter would be <code>3B<\/code>. Every shared edge is included twice in that total but contributes nothing to the outside perimeter. Therefore:<\/p>\n<pre><code class=\"language-text\">answer = 3B - 2E<\/code><\/pre>\n<p>This is a local-contribution method: add the complete contribution of each unit first, then remove the internal duplication created by adjacency.<\/p>\n<p>We count <code>E<\/code> in three places:<\/p>\n<ol>\n<li>Adjacent black pairs in the top row.<\/li>\n<li>Adjacent black pairs in the bottom row.<\/li>\n<li>Black pairs across the two rows at zero-based even columns.<\/li>\n<\/ol>\n<h2>Algorithm Steps<\/h2>\n<ol>\n<li>\u9605\u8bfb<code>C<\/code>, <code>top<\/code>, and <code>bottom<\/code>.<\/li>\n<li>Compute <code>B = sum(top) + sum(bottom)<\/code>.<\/li>\n<li>Initialize <code>tape = 3 * B<\/code>.<\/li>\n<li>For every <code>i<\/code> from <code>0<\/code> to <code>C - 2<\/code>, subtract two if <code>top[i]<\/code> and <code>top[i+1]<\/code> are both black.<\/li>\n<li>Do the same for the bottom row.<\/li>\n<li>For <code>i = 0, 2, 4, ...<\/code>, subtract two if <code>top[i]<\/code> and <code>bottom[i]<\/code> are both black.<\/li>\n<li>print<code>tape<\/code>.<\/li>\n<\/ol>\n<p>In the second official sample, there are five black triangles, so the initial perimeter is <code>15<\/code>. There are two shared black edges, giving <code>15 - 2 * 2 = 11<\/code>.<\/p>\n<h2>Python \u89e3\u6cd5<\/h2>\n<pre><code class=\"language-python\">C = int(input())\ntop = list(map(int, input().split()))\nbottom = list(map(int, input().split()))\n\nblack_tiles = sum(top) + sum(bottom)\ntape = 3 * black_tiles\n\nfor i in range(C - 1):\n    if top[i] == 1 and top[i + 1] == 1:\n        tape -= 2\n    if bottom[i] == 1 and bottom[i + 1] == 1:\n        tape -= 2\n\nfor i in range(0, C, 2):\n    if top[i] == 1 and bottom[i] == 1:\n        tape -= 2\n\nprint(tape)<\/code><\/pre>\n<p>The code first adds the full perimeter of every black triangle. It then removes the two types of shared edges: horizontal pairs within a row and vertical pairs at even columns. Each shared edge is examined exactly once.<\/p>\n<h2>C++ \u89e3\u6cd5<\/h2>\n<pre><code class=\"language-cpp\">#include &lt;iostream&gt;\n#include &lt;vector&gt;\nusing namespace std;\n\nint main() {\n    ios::sync_with_stdio(false);\n    cin.tie(nullptr);\n\n    int C;\n    cin &gt;&gt; C;\n\n    vector&lt;int&gt; top(C), bottom(C);\n    int blackTiles = 0;\n\n    for (int i = 0; i &lt; C; i++) {\n        cin &gt;&gt; top[i];\n        blackTiles += top[i];\n    }\n    for (int i = 0; i &lt; C; i++) {\n        cin &gt;&gt; bottom[i];\n        blackTiles += bottom[i];\n    }\n\n    int tape = 3 * blackTiles;\n\n    for (int i = 0; i + 1 &lt; C; i++) {\n        if (top[i] == 1 &amp;&amp; top[i + 1] == 1) {\n            tape -= 2;\n        }\n        if (bottom[i] == 1 &amp;&amp; bottom[i + 1] == 1) {\n            tape -= 2;\n        }\n    }\n\n    for (int i = 0; i &lt; C; i += 2) {\n        if (top[i] == 1 &amp;&amp; bottom[i] == 1) {\n            tape -= 2;\n        }\n    }\n\n    cout &lt;&lt; tape &lt;&lt; &#x27;\\n&#x27;;\n    return 0;\n}<\/code><\/pre>\n<p>The C++ version uses the same counting logic. The condition <code>i + 1 &lt; C<\/code> prevents an out-of-bounds access, and <code>i += 2<\/code> visits exactly the columns where cross-row shared edges are possible.<\/p>\n<h2>\u590d\u6742\u5ea6\u5206\u6790<\/h2>\n<p>The input and all counting loops scan the two rows a constant number of times:<\/p>\n<pre><code class=\"language-text\">Time: O(C)\nSpace: O(C)<\/code><\/pre>\n<p>This easily handles the official maximum of 200,000 columns.<\/p>\n<h2>\u5e38\u89c1\u9519\u8bef<\/h2>\n<ol>\n<li>Subtracting one instead of two for a shared edge.<\/li>\n<li>Checking cross-row adjacency in every column instead of only zero-based even columns.<\/li>\n<li>Treating triangles that meet at a vertex as if they shared a side.<\/li>\n<li>Checking both left and right neighbors and subtracting the same horizontal edge twice.<\/li>\n<li>Reading <code>row[i + 1]<\/code> when <code>i<\/code> is already the last column.<\/li>\n<li>Guessing the perimeter from the picture without defining a countable invariant.<\/li>\n<\/ol>\n<h2>Review Questions<\/h2>\n<ol>\n<li>Why does every black triangle initially contribute three?<\/li>\n<li>Why does one shared black edge reduce the answer by two?<\/li>\n<li>Why can cross-row shared edges occur only at zero-based even columns?<\/li>\n<li>How does the loop count every horizontal shared edge exactly once?<\/li>\n<li>What other grid-perimeter problems can use the same \u201cfull contribution minus internal edges\u201d idea?<\/li>\n<\/ol>\n<\/article>\n<\/div>\n<div class=\"ati-article-content ati-lang-zh\">\n<article class=\"ati-post-article\">\n<p>\u5982\u679c\u6bcf\u5757\u9ed1\u8272\u4e09\u89d2\u5f62\u90fd\u4e92\u4e0d\u63a5\u89e6\uff0c\u7b54\u6848\u5f88\u597d\u7b97\uff1a\u6bcf\u5757\u4e09\u89d2\u5f62\u6709 3 \u6761\u8fb9\uff0c\u76f4\u63a5\u7528\u9ed1\u8272\u683c\u5b50\u6570\u4e58 3\u3002\u4f46\u4e24\u5757\u9ed1\u8272\u4e09\u89d2\u5f62\u5171\u7528\u4e00\u6761\u8fb9\u65f6\uff0c\u8fd9\u6761\u8fb9\u5728\u521d\u59cb\u5468\u957f\u91cc\u88ab\u7b97\u4e86\u4e24\u6b21\uff0c\u5b9e\u9645\u5374\u5b8c\u5168\u4e0d\u9700\u8981\u8b66\u793a\u80f6\u5e26\u3002<\/p>\n<p>\u56e0\u6b64\uff0cTrianglane \u771f\u6b63\u8003\u5bdf\u7684\u4e0d\u662f\u590d\u6742\u51e0\u4f55\uff0c\u800c\u662f\u628a\u56fe\u5f62\u8f6c\u6210\u4e00\u4e2a\u51c6\u786e\u7684\u8ba1\u6570\u516c\u5f0f\uff1a\u5148\u7b97\u6240\u6709\u9ed1\u8272\u4e09\u89d2\u5f62\u7684\u72ec\u7acb\u5468\u957f\uff0c\u518d\u4e3a\u6bcf\u4e00\u6761\u9ed1\u8272\u5171\u7528\u8fb9\u51cf\u53bb 2\u3002<\/p>\n<h2>\u672c\u9898\u5728 CCC DSA \u5730\u56fe\u91cc\u7684\u4f4d\u7f6e<\/h2>\n<ul>\n<li>\u9898\u76ee\u7ea7\u522b\uff1aJunior J4\uff0fSenior S1<\/li>\n<li>\u6838\u5fc3\u65b9\u6cd5\uff1a\u7f51\u683c\u76f8\u90bb\u5173\u7cfb\u3001\u5468\u957f\u7edf\u8ba1\u3001\u5c40\u90e8\u8d21\u732e\u8ba1\u6570<\/li>\n<li>\u524d\u7f6e\u77e5\u8bc6\uff1a\u6570\u7ec4\uff0f\u5217\u8868\u3001\u5faa\u73af\u3001\u5947\u5076\u6027\u3001\u8fb9\u754c\u5224\u65ad\u548c\u7d2f\u8ba1\u7edf\u8ba1<\/li>\n<li>\u5b66\u4e60\u91cd\u70b9\uff1a\u628a\u6574\u4f53\u51e0\u4f55\u91cf\u62c6\u6210\u6bcf\u4e2a\u5355\u5143\u7684\u521d\u59cb\u8d21\u732e\uff0c\u518d\u6263\u9664\u76f8\u90bb\u5355\u5143\u9020\u6210\u7684\u91cd\u590d\u8ba1\u6570\u3002<\/li>\n<li>\u76f8\u5173\u5e94\u7528\uff1a\u5c9b\u5c7f\u5468\u957f\u3001\u7f51\u683c\u8fb9\u8ba1\u6570\u3001\u5c40\u90e8\u8d21\u732e\u6cd5\u548c\u56fe\u7684\u5ea6\u6570\u7edf\u8ba1<\/li>\n<\/ul>\n<h2>\u4e0b\u4e00\u6b65\u63a8\u8350<\/h2>\n<p>\u5982\u679c\u4f60\u5df2\u7ecf\u7406\u89e3 Trianglane\uff0c\u53ef\u4ee5\u7ee7\u7eed\u770b\uff1a<\/p>\n<ul>\n<li>\u76f8\u5173 CP Weekly \u771f\u9898\uff1a<a href=\"\/zh_cn\/ccc-2021-j5-s2-modern-art-solution-analysis\/\">CCC 2021 J5\/S2 Modern Art<\/a>\uff08\u5947\u5076\u6027\u4e0e\u8ba1\u6570\uff09\u3001<a href=\"\/zh_cn\/ccc-2024-j5-harvest-waterloo-solution-analysis\/\">CCC 2024 J5 Harvest Waterloo<\/a>\uff08grid \u8fde\u901a\u5757\uff09\u3001<a href=\"\/zh_cn\/ccc-2026-j4-snail-path-solution-analysis\/\">CCC 2026 J4 Snail Path<\/a>\uff08grid simulation\uff09<\/li>\n<li>\u76f8\u5173 Python \/ C++ \u57fa\u7840\uff1a\u4e00\u7ef4 list\/vector\u3001\u53cc\u5c42\u5faa\u73af\u3001<code>% 2<\/code> \u5224\u65ad\u5947\u5076\u3001\u8fb9\u754c\u68c0\u67e5\u3001running total<\/li>\n<li>\u76f8\u5173 DSA \u4e13\u9898\uff1aCCC Grid Problems: from local adjacency to graph search\uff08planned\uff09<\/li>\n<\/ul>\n<h2>\u9898\u76ee\u8981\u6211\u4eec\u505a\u4ec0\u4e48<\/h2>\n<p>\u4e00\u6761\u5df7\u9053\u7531\u4e24\u884c\u7b49\u8fb9\u4e09\u89d2\u5f62\u74f7\u7816\u7ec4\u6210\uff0c\u6bcf\u884c\u6709 <code>C<\/code> \u5757\u3002\u4e09\u89d2\u5f62\u8fb9\u957f\u90fd\u662f 1 \u7c73\uff0c\u5e76\u4e14\u65b9\u5411\u4ea4\u66ff\u6392\u5217\uff1a\u7b2c\u4e00\u5757\u671d\u4e0a\uff0c\u4e4b\u540e\u6bcf\u4e00\u5757\u90fd\u4e0e\u524d\u4e00\u5757\u65b9\u5411\u76f8\u53cd\u3002<\/p>\n<p>\u8f93\u5165\u4e2d\u7684\uff1a<\/p>\n<pre><code class=\"language-text\">1 = \u9ed1\u8272\u6e7f\u74f7\u7816\uff0c\u9700\u8981\u56f4\u4f4f\n0 = \u767d\u8272\u5e72\u74f7\u7816\uff0c\u4e0d\u9700\u8981\u56f4\u4f4f<\/code><\/pre>\n<p>\u6211\u4eec\u8981\u8ba1\u7b97\u6240\u6709\u9ed1\u8272\u533a\u57df\u5916\u6cbf\u4e00\u5171\u9700\u8981\u591a\u5c11\u7c73\u8b66\u793a\u80f6\u5e26\u3002\u4e24\u5757\u9ed1\u8272\u74f7\u7816\u5982\u679c\u5171\u7528\u4e00\u6574\u6761\u8fb9\uff0c\u90a3\u6761\u8fb9\u4f4d\u4e8e\u9ed1\u8272\u533a\u57df\u5185\u90e8\uff0c\u4e0d\u9700\u8981\u80f6\u5e26\uff1b\u5982\u679c\u53ea\u63a5\u89e6\u4e00\u4e2a\u9876\u70b9\uff0c\u5219\u4e0d\u7b97\u76f8\u90bb\uff0c\u5468\u957f\u4e0d\u4f1a\u51cf\u5c11\u3002<\/p>\n<p>\u5b98\u65b9\u6700\u5927\u8303\u56f4\u662f <code>C &lt;= 200000<\/code>\uff0c\u6240\u4ee5\u7b97\u6cd5\u5e94\u8be5\u5728\u7ebf\u6027\u65f6\u95f4\u5185\u5b8c\u6210\u3002<\/p>\n<h2>\u521d\u5b66\u8005\u5bb9\u6613\u5361\u5728\u54ea\u91cc<\/h2>\n<p>\u7b2c\u4e00\u4e2a\u96be\u70b9\u662f\u7406\u89e3\u201c\u5171\u7528\u4e00\u6761\u8fb9\u201d\u4f1a\u8ba9\u7b54\u6848\u51cf\u5c11\u591a\u5c11\u3002<\/p>\n<p>\u4e24\u5757\u5b64\u7acb\u7684\u9ed1\u8272\u4e09\u89d2\u5f62\u539f\u672c\u8d21\u732e\uff1a<\/p>\n<pre><code class=\"language-text\">3 + 3 = 6<\/code><\/pre>\n<p>\u5b83\u4eec\u8fde\u63a5\u540e\uff0c\u5171\u7528\u8fb9\u5728 <code>6<\/code> \u4e2d\u88ab\u8ba1\u7b97\u4e86\u4e24\u6b21\uff0c\u4f46\u5b9e\u9645\u8fd9\u6761\u8fb9\u4e24\u4fa7\u90fd\u4e0d\u9700\u8981\u80f6\u5e26\uff0c\u6240\u4ee5\u6bcf\u6761\u5171\u7528\u8fb9\u8981\u51cf\u53bb <code>2<\/code>\uff0c\u4e0d\u662f\u51cf\u53bb <code>1<\/code>\u3002<\/p>\n<p>\u7b2c\u4e8c\u4e2a\u96be\u70b9\u662f\u4e0a\u4e0b\u4e24\u884c\u7684\u8fde\u63a5\u89c4\u5f8b\u3002\u540c\u884c\u7684\u76f8\u90bb\u9ed1\u8272\u74f7\u7816\u4f1a\u5171\u7528\u8fb9\uff1b\u8de8\u884c\u65f6\uff0c\u5e76\u4e0d\u662f\u6bcf\u4e00\u5217\u90fd\u5171\u7528\u8fb9\u3002\u6309\u7167\u9898\u76ee\u7684\u4ea4\u66ff\u65b9\u5411\uff0c\u53ea\u6709 0-based \u5076\u6570\u5217 <code>0, 2, 4, ...<\/code> \u7684\u4e0a\u4e0b\u4e24\u5757\u4e09\u89d2\u5f62\u53ef\u80fd\u5171\u7528\u4e00\u6761\u8fb9\u3002\u5947\u6570\u5217\u7684\u4e0a\u4e0b\u74f7\u7816\u53ea\u5728\u9876\u70b9\u76f8\u78b0\u3002<\/p>\n<p>\u7b2c\u4e09\u4e2a\u96be\u70b9\u662f\u91cd\u590d\u8ba1\u7b97\u3002\u5982\u679c\u540c\u65f6\u68c0\u67e5\u4e00\u4e2a\u683c\u5b50\u7684\u5de6\u8fb9\u548c\u53f3\u8fb9\uff0c\u4e00\u6761\u540c\u884c\u5171\u7528\u8fb9\u4f1a\u88ab\u68c0\u67e5\u4e24\u6b21\u3002\u6700\u7b80\u5355\u7684\u505a\u6cd5\u662f\u53ea\u68c0\u67e5\u76f8\u90bb\u4e0b\u6807\u5bf9 <code>(i, i + 1)<\/code>\uff0c\u6bcf\u6761\u540c\u884c\u5171\u7528\u8fb9\u81ea\u7136\u53ea\u8ba1\u7b97\u4e00\u6b21\u3002<\/p>\n<h2>\u6838\u5fc3\u7b97\u6cd5\u6982\u5ff5<\/h2>\n<p>\u8bbe\uff1a<\/p>\n<pre><code class=\"language-text\">B = \u9ed1\u8272\u4e09\u89d2\u5f62\u603b\u6570\nE = \u4e24\u5757\u9ed1\u8272\u4e09\u89d2\u5f62\u4e4b\u95f4\u7684\u5171\u7528\u8fb9\u603b\u6570<\/code><\/pre>\n<p>\u5982\u679c\u6240\u6709\u9ed1\u8272\u4e09\u89d2\u5f62\u90fd\u5b64\u7acb\uff0c\u603b\u5468\u957f\u662f\uff1a<\/p>\n<pre><code class=\"language-text\">3B<\/code><\/pre>\n<p>\u6bcf\u6761\u5171\u7528\u8fb9\u5728 <code>3B<\/code> \u4e2d\u51fa\u73b0\u4e24\u6b21\uff0c\u4f46\u4e0d\u5c5e\u4e8e\u5916\u6cbf\uff0c\u56e0\u6b64\uff1a<\/p>\n<pre><code class=\"language-text\">answer = 3B - 2E<\/code><\/pre>\n<p>\u8fd9\u4e2a\u601d\u8def\u53eb local contribution\uff1a\u5148\u7ed9\u6bcf\u4e2a\u5355\u5143\u52a0\u5165\u5b8c\u6574\u8d21\u732e\uff0c\u518d\u628a\u76f8\u90bb\u9020\u6210\u7684\u5185\u90e8\u91cd\u590d\u90e8\u5206\u6263\u6389\u3002<\/p>\n<h2>\u6570\u636e\u7ed3\u6784\u8bbe\u8ba1<\/h2>\n<p>\u53ea\u9700\u8981\u4fdd\u5b58\u4e24\u884c\u6574\u6570\uff1a<\/p>\n<pre><code class=\"language-text\">top[i] = \u4e0a\u9762\u4e00\u884c\u7b2c i \u5217\u662f\u5426\u4e3a\u9ed1\u8272\nbottom[i] = \u4e0b\u9762\u4e00\u884c\u7b2c i \u5217\u662f\u5426\u4e3a\u9ed1\u8272<\/code><\/pre>\n<p>\u7136\u540e\u5206\u522b\u7edf\u8ba1\u4e09\u79cd\u4fe1\u606f\uff1a<\/p>\n<ol>\n<li>\u4e24\u884c\u4e2d\u6240\u6709\u7684 <code>1<\/code>\uff0c\u5f97\u5230 <code>B<\/code>\u3002<\/li>\n<li><code>top[i]<\/code> \u4e0e <code>top[i + 1]<\/code> \u540c\u65f6\u4e3a <code>1<\/code> \u7684\u6b21\u6570\u3002<\/li>\n<li><code>bottom[i]<\/code> \u4e0e <code>bottom[i + 1]<\/code> \u540c\u65f6\u4e3a <code>1<\/code> \u7684\u6b21\u6570\u3002<\/li>\n<li>\u5076\u6570\u5217\u4e2d <code>top[i]<\/code> \u4e0e <code>bottom[i]<\/code> \u540c\u65f6\u4e3a <code>1<\/code> \u7684\u6b21\u6570\u3002<\/li>\n<\/ol>\n<p>\u540e\u4e09\u9879\u52a0\u8d77\u6765\u5c31\u662f <code>E<\/code>\u3002<\/p>\n<h2>\u7b97\u6cd5\u6b65\u9aa4<\/h2>\n<ol>\n<li>\u8bfb\u5165 <code>C<\/code>\u3001<code>top<\/code> \u548c <code>bottom<\/code>\u3002<\/li>\n<li>\u8ba1\u7b97 <code>B = sum(top) + sum(bottom)<\/code>\u3002<\/li>\n<li>\u4ee4 <code>tape = 3 * B<\/code>\u3002<\/li>\n<li>\u904d\u5386 <code>i = 0 ... C - 2<\/code>\uff1a\u5982\u679c <code>top[i]<\/code> \u548c <code>top[i+1]<\/code> \u90fd\u662f\u9ed1\u8272\uff0c<code>tape -= 2<\/code>\u3002<\/li>\n<li>\u5bf9 <code>bottom<\/code> \u505a\u540c\u6837\u7684\u540c\u884c\u68c0\u67e5\u3002<\/li>\n<li>\u904d\u5386\u5076\u6570\u5217 <code>i = 0, 2, 4, ...<\/code>\uff1a\u5982\u679c\u4e0a\u4e0b\u4e24\u5757\u90fd\u662f\u9ed1\u8272\uff0c<code>tape -= 2<\/code>\u3002<\/li>\n<li>\u8f93\u51fa <code>tape<\/code>\u3002<\/li>\n<\/ol>\n<p>\u4f8b\u5982\u5b98\u65b9\u7b2c\u4e8c\u4e2a\u6837\u4f8b\u5171\u6709 5 \u5757\u9ed1\u8272\u4e09\u89d2\u5f62\uff0c\u521d\u59cb\u5468\u957f\u4e3a <code>15<\/code>\u3002\u5176\u4e2d\u6709\u4e24\u6761\u9ed1\u8272\u5171\u7528\u8fb9\uff0c\u56e0\u6b64\u7b54\u6848\u4e3a\uff1a<\/p>\n<pre><code class=\"language-text\">15 - 2 * 2 = 11<\/code><\/pre>\n<h2>Python \u89e3\u6cd5<\/h2>\n<pre><code class=\"language-python\">C = int(input())\ntop = list(map(int, input().split()))\nbottom = list(map(int, input().split()))\n\nblack_tiles = sum(top) + sum(bottom)\ntape = 3 * black_tiles\n\nfor i in range(C - 1):\n    if top[i] == 1 and top[i + 1] == 1:\n        tape -= 2\n    if bottom[i] == 1 and bottom[i + 1] == 1:\n        tape -= 2\n\nfor i in range(0, C, 2):\n    if top[i] == 1 and bottom[i] == 1:\n        tape -= 2\n\nprint(tape)<\/code><\/pre>\n<p>\u4ee3\u7801\u5148\u4e00\u6b21\u6027\u52a0\u5165\u6240\u6709\u9ed1\u8272\u4e09\u89d2\u5f62\u7684\u5468\u957f\uff0c\u518d\u5206\u4e24\u7c7b\u6263\u9664\u5171\u7528\u8fb9\uff1a\u540c\u884c\u76f8\u90bb\uff0c\u4ee5\u53ca\u5076\u6570\u5217\u7684\u8de8\u884c\u76f8\u90bb\u3002\u6bcf\u79cd\u5171\u7528\u8fb9\u90fd\u53ea\u68c0\u67e5\u4e00\u6b21\u3002<\/p>\n<h2>C++ \u89e3\u6cd5<\/h2>\n<pre><code class=\"language-cpp\">#include &lt;iostream&gt;\n#include &lt;vector&gt;\nusing namespace std;\n\nint main() {\n    ios::sync_with_stdio(false);\n    cin.tie(nullptr);\n\n    int C;\n    cin &gt;&gt; C;\n\n    vector&lt;int&gt; top(C), bottom(C);\n    int blackTiles = 0;\n\n    for (int i = 0; i &lt; C; i++) {\n        cin &gt;&gt; top[i];\n        blackTiles += top[i];\n    }\n    for (int i = 0; i &lt; C; i++) {\n        cin &gt;&gt; bottom[i];\n        blackTiles += bottom[i];\n    }\n\n    int tape = 3 * blackTiles;\n\n    for (int i = 0; i + 1 &lt; C; i++) {\n        if (top[i] == 1 &amp;&amp; top[i + 1] == 1) {\n            tape -= 2;\n        }\n        if (bottom[i] == 1 &amp;&amp; bottom[i + 1] == 1) {\n            tape -= 2;\n        }\n    }\n\n    for (int i = 0; i &lt; C; i += 2) {\n        if (top[i] == 1 &amp;&amp; bottom[i] == 1) {\n            tape -= 2;\n        }\n    }\n\n    cout &lt;&lt; tape &lt;&lt; &#x27;\\n&#x27;;\n    return 0;\n}<\/code><\/pre>\n<p>C++ \u7248\u672c\u4e0e Python \u4f7f\u7528\u5b8c\u5168\u76f8\u540c\u7684\u8ba1\u6570\u903b\u8f91\u3002<code>i + 1 &lt; C<\/code> \u4fdd\u8bc1\u540c\u884c\u68c0\u67e5\u4e0d\u4f1a\u8d8a\u754c\uff0c\u800c <code>i += 2<\/code> \u76f4\u63a5\u679a\u4e3e\u80fd\u591f\u8de8\u884c\u5171\u8fb9\u7684\u5076\u6570\u5217\u3002<\/p>\n<h2>\u590d\u6742\u5ea6\u5206\u6790<\/h2>\n<p>\u8bfb\u5165\u548c\u4e09\u4e2a\u8ba1\u6570\u5faa\u73af\u90fd\u53ea\u7ebf\u6027\u626b\u63cf\u6570\u7ec4\uff1a<\/p>\n<pre><code class=\"language-text\">Time: O(C)\nSpace: O(C)<\/code><\/pre>\n<p>\u5f53 <code>C = 200000<\/code> \u65f6\uff0c\u8fd9\u4e2a\u590d\u6742\u5ea6\u4e5f\u8db3\u591f\u5feb\u3002\u5982\u679c\u8fb9\u8bfb\u5165\u8fb9\u505a\u66f4\u590d\u6742\u7684\u5904\u7406\uff0c\u53ef\u4ee5\u628a\u989d\u5916\u7a7a\u95f4\u4f18\u5316\u5230 <code>O(C)<\/code> \u4ee5\u4e0b\uff0c\u4f46\u672c\u9898\u6ca1\u6709\u5fc5\u8981\u727a\u7272\u53ef\u8bfb\u6027\u3002<\/p>\n<h2>\u5e38\u89c1\u9519\u8bef<\/h2>\n<ol>\n<li>\u6bcf\u6761\u5171\u7528\u8fb9\u53ea\u51cf <code>1<\/code>\uff1b\u6b63\u786e\u503c\u662f <code>2<\/code>\u3002<\/li>\n<li>\u5728\u6240\u6709\u5217\u68c0\u67e5\u4e0a\u4e0b\u76f8\u90bb\uff1b\u53ea\u6709 0-based \u5076\u6570\u5217\u4f1a\u8de8\u884c\u5171\u7528\u8fb9\u3002<\/li>\n<li>\u628a\u53ea\u63a5\u89e6\u4e00\u4e2a\u9876\u70b9\u7684\u4e09\u89d2\u5f62\u5f53\u6210\u5171\u7528\u8fb9\u3002<\/li>\n<li>\u540c\u65f6\u5411\u5de6\u3001\u5411\u53f3\u68c0\u67e5\uff0c\u5bfc\u81f4\u540c\u884c\u5171\u7528\u8fb9\u91cd\u590d\u6263\u9664\u3002<\/li>\n<li>\u5faa\u73af\u8dd1\u5230 <code>i = C - 1<\/code> \u540e\u4ecd\u8bbf\u95ee <code>i + 1<\/code>\uff0c\u9020\u6210\u8d8a\u754c\u3002<\/li>\n<li>\u5148\u51ed\u56fe\u5f62\u731c\u5468\u957f\uff0c\u5374\u6ca1\u6709\u5efa\u7acb\u53ef\u9a8c\u8bc1\u7684\u8ba1\u6570\u516c\u5f0f\u3002<\/li>\n<\/ol>\n<h2>\u590d\u4e60\u95ee\u9898<\/h2>\n<ol>\n<li>\u4e3a\u4ec0\u4e48\u6bcf\u5757\u9ed1\u8272\u4e09\u89d2\u5f62\u4e00\u5f00\u59cb\u8d21\u732e <code>3<\/code>\uff1f<\/li>\n<li>\u4e3a\u4ec0\u4e48\u6bcf\u6761\u9ed1\u8272\u5171\u7528\u8fb9\u8981\u4ece\u7b54\u6848\u4e2d\u51cf\u53bb <code>2<\/code>\uff1f<\/li>\n<li>\u4e3a\u4ec0\u4e48\u4e0a\u4e0b\u4e24\u884c\u53ea\u5728 0-based \u5076\u6570\u5217\u68c0\u67e5\u5171\u7528\u8fb9\uff1f<\/li>\n<li>\u5982\u4f55\u4fdd\u8bc1\u6bcf\u6761\u540c\u884c\u5171\u7528\u8fb9\u53ea\u88ab\u8ba1\u7b97\u4e00\u6b21\uff1f<\/li>\n<li>\u8fd9\u4e2a\u201c\u521d\u59cb\u8d21\u732e\u51cf\u5185\u90e8\u5171\u7528\u8fb9\u201d\u7684\u65b9\u6cd5\u8fd8\u80fd\u89e3\u51b3\u54ea\u4e9b grid perimeter \u95ee\u9898\uff1f<\/li>\n<\/ol>\n<\/article>\n<\/div>\n<section class=\"ati-feedback-cta ati-lang-en\" data-ati-feedback>\n<div class=\"ati-feedback-copy\">\n<p class=\"ati-feedback-title\">\u6709\u95ee\u9898\u6216\u5efa\u8bae\uff1f<\/p>\n<p class=\"ati-feedback-note\">\u5982\u679c\u4f60\u5bf9\u672c\u6587\u6709\u7591\u95ee\uff0c\u6216\u5e0c\u671b\u63d0\u51fa\u6539\u8fdb\u5efa\u8bae\uff0c\u8bf7\u7ed9\u6211\u4eec\u53d1\u9001\u79c1\u5bc6\u7559\u8a00\u3002<\/p>\n<\/div>\n<p>  <a class=\"ati-feedback-button\" href=\"\/zh_cn\/contact\/\" data-ati-feedback-link>\u53d1\u9001\u53cd\u9988<\/a><br>\n<\/p><\/section>\n<section class=\"ati-feedback-cta ati-lang-zh\" data-ati-feedback>\n<div class=\"ati-feedback-copy\">\n<p class=\"ati-feedback-title\">\u6709\u95ee\u9898\u6216\u5efa\u8bae\uff1f<\/p>\n<p class=\"ati-feedback-note\">\u5982\u679c\u4f60\u5bf9\u672c\u6587\u6709\u7591\u95ee\uff0c\u6216\u5e0c\u671b\u63d0\u51fa\u6539\u8fdb\u5efa\u8bae\uff0c\u8bf7\u7ed9\u6211\u4eec\u53d1\u9001\u79c1\u5bc6\u7559\u8a00\u3002<\/p>\n<\/div>\n<p>  <a class=\"ati-feedback-button\" href=\"\/zh_cn\/contact\/\" data-ati-feedback-link>\u53d1\u9001\u53cd\u9988<\/a><br>\n<\/p><\/section>\n<div class=\"ati-article-back ati-lang-en\">\n  <a href=\"\/zh_cn\/cp-weekly-challenge\/\">Back to CP Weekly Challenge<\/a>\n<\/div>\n<div class=\"ati-article-back ati-lang-zh\">\n  <a href=\"\/zh_cn\/cp-weekly-challenge\/\">\u8fd4\u56de CP \u6bcf\u5468\u7f16\u7a0b\u6311\u6218<\/a>\n<\/div>\n<\/article>\n<\/section>\n<p>    <\/p>\n<footer class=\"ati-footer\">\n      <a class=\"ati-brand ati-logo\" href=\"\/zh_cn\/\" aria-label=\"Accel Thinking home\"><img loading=\"lazy\" decoding=\"async\" height=\"63\" width=\"366\" src=\"https:\/\/i0.wp.com\/accelthinking.com\/wp-content\/uploads\/2026\/06\/logo-dark-cropped-51.png?w=480&amp;quality=85&amp;ssl=1\" alt=\"Accel Thinking\"><\/a>\n<nav><a class=\"\" href=\"\/zh_cn\/\">\u9996\u9875<\/a><a class=\"\" href=\"\/zh_cn\/northstar\/\">\u5317\u6781\u661f<\/a><a class=\"\" href=\"\/zh_cn\/learning\/\">\u5b66\u4e60\u8def\u5f84<\/a><a class=\"active\" href=\"\/zh_cn\/resources\/\">\u8d44\u6e90\u6587\u7ae0<\/a><a class=\"\" href=\"\/zh_cn\/about\/\">\u5173\u4e8e\u6211\u4eec<\/a><a class=\"\" href=\"\/zh_cn\/contact\/\">\u8054\u7cfb\u6211\u4eec<\/a><a class=\"\" href=\"\/zh_cn\/privacy-policy\/\">\u9690\u79c1\u653f\u7b56<\/a><a class=\"\" href=\"\/zh_cn\/terms-and-conditions\/\">\u6761\u6b3e\u4e0e\u6761\u4ef6<\/a><\/nav>\n<address><a href=\"mailto:info@accelthinking.com\">info@accelthinking.com<\/a><a href=\"tel:+18556265066\">Toll-free: 1-855-626-5066<\/a><span>\u52a0\u62ff\u5927\u5b89\u5927\u7565\u7701\u5965\u514b\u7ef4\u5c14<\/span><\/address>\n<\/footer><\/div>\n<p><\/p>\n<style data-source=\"ati_article_share_tools\">\n.ati-share-tools{margin:0 0 30px!important;padding:20px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px}\n.ati-share-tools p{margin:0!important}\n.ati-share-tools .ati-share-kicker{color:#b47c00!important;font-size:13px!important;font-weight:900!important;text-transform:uppercase;letter-spacing:.08em}\n.ati-share-note{margin-top:6px!important;color:#475569!important;font-size:15px!important;line-height:1.45!important}\n.ati-share-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}\n.ati-share-actions button,.ati-share-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:0 13px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#0f172a!important;font:inherit;font-size:13px;font-weight:900;line-height:1;cursor:pointer;text-decoration:none!important}\n.ati-share-actions button:hover,.ati-share-actions a:hover{border-color:#ffc400;background:#fff7d6}\n.ati-share-actions [data-share-copy-link],.ati-share-actions [data-share-native]{background:#ffc400;border-color:#ffc400;color:#050505!important}\n.ati-share-qr{display:flex;gap:14px;align-items:center;margin-top:16px;padding:14px;background:#fff;border:1px solid #e2e8f0;border-radius:8px}\n.ati-share-qr[hidden]{display:none!important}.ati-share-qr img{width:118px;height:118px;border-radius:6px}.ati-share-qr p{color:#475569!important;font-size:14px!important;line-height:1.4!important}\n.ati-share-status{min-height:18px;margin-top:10px!important;color:#0f766e!important;font-size:13px!important;font-weight:800!important}\n@media(max-width:640px){.ati-share-actions button,.ati-share-actions a{width:100%}.ati-share-qr{align-items:flex-start}.ati-share-qr img{width:104px;height:104px}}\n<\/style>\n<p><script data-source=\"ati_article_share_tools\">\n(function(){\n  function text(isZh, en, zh){ return isZh ? zh : en; }\n  function copyText(value, status, message){\n    function done(){ if(status) status.textContent = message; }\n    function fallback(){\n      var input = document.createElement('textarea');\n      input.value = value;\n      input.setAttribute('readonly', '');\n      input.style.position = 'fixed';\n      input.style.left = '-9999px';\n      document.body.appendChild(input);\n      input.select();\n      try { document.execCommand('copy'); } catch(e) {}\n      document.body.removeChild(input);\n      done();\n    }\n    if (navigator.clipboard && navigator.clipboard.writeText) {\n      navigator.clipboard.writeText(value).then(done).catch(fallback);\n    } else fallback();\n  }\n  document.querySelectorAll('[data-ati-share]').forEach(function(box){\n    if (box.dataset.ready) return;\n    box.dataset.ready = '1';\n    var isZh = location.pathname.toLowerCase().includes('\/zh_cn\/');\n    var pageUrl = location.origin + location.pathname;\n    var title = (document.querySelector('.ati-hero h1') || document.querySelector('h1'))?.innerText.trim() || document.title.replace(\/\\s+-\\s+.*$\/, '');\n    var status = box.querySelector('[data-share-status]');\n    var note = box.querySelector('.ati-share-note');\n    var kicker = box.querySelector('.ati-share-kicker');\n    var qrText = box.querySelector('.ati-share-qr p');\n    if (isZh) {\n      kicker.textContent = '\u5206\u4eab\u8fd9\u7bc7\u6587\u7ae0';\n      note.textContent = '\u590d\u5236\u94fe\u63a5\u3001\u8c03\u7528\u624b\u673a\u5206\u4eab\u9762\u677f\u3001\u7528\u5fae\u4fe1\u626b\u7801\uff0c\u6216\u901a\u8fc7\u90ae\u4ef6\u53d1\u9001\u3002';\n      qrText.textContent = '\u7528\u5fae\u4fe1\u626b\u7801\u540e\uff0c\u53ef\u5c06\u6587\u7ae0\u94fe\u63a5\u8f6c\u53d1\u7ed9\u597d\u53cb\u6216\u7fa4\u804a\u3002';\n    }\n    var labels = {\n      '[data-share-native]': text(isZh, 'Share', '\u7cfb\u7edf\u5206\u4eab'),\n      '[data-share-copy-link]': text(isZh, 'Copy Link', '\u590d\u5236\u94fe\u63a5'),\n      '[data-share-wechat]': text(isZh, 'WeChat QR', '\u5fae\u4fe1\u4e8c\u7ef4\u7801')\n    };\n    Object.keys(labels).forEach(function(sel){ var el = box.querySelector(sel); if(el) el.textContent = labels[sel]; });\n    var email = box.querySelector('[data-share-email]');\n    if (email) email.href = 'mailto:?subject=' + encodeURIComponent(title) + '&body=' + encodeURIComponent(title + '\\n\\n' + pageUrl);\n    var qrImg = box.querySelector('[data-share-qr-img]');\n    if (qrImg) qrImg.src = 'https:\/\/api.qrserver.com\/v1\/create-qr-code\/?size=180x180&data=' + encodeURIComponent(pageUrl);\n    var nativeBtn = box.querySelector('[data-share-native]');\n    if (nativeBtn) nativeBtn.addEventListener('click', function(){\n      if (navigator.share) {\n        navigator.share({title:title, url:pageUrl}).catch(function(){});\n      } else {\n        copyText(pageUrl, status, text(isZh, 'Link copied. You can paste it into any app.', '\u94fe\u63a5\u5df2\u590d\u5236\uff0c\u53ef\u7c98\u8d34\u5230\u4efb\u610f\u5e94\u7528\u3002'));\n      }\n    });\n    var copyBtn = box.querySelector('[data-share-copy-link]');\n    if (copyBtn) copyBtn.addEventListener('click', function(){\n      copyText(pageUrl, status, text(isZh, 'Link copied.', '\u94fe\u63a5\u5df2\u590d\u5236\u3002'));\n    });\n    var qrBtn = box.querySelector('[data-share-wechat]');\n    if (qrBtn) qrBtn.addEventListener('click', function(){\n      var qr = box.querySelector('[data-share-qr]');\n      if (qr) qr.hidden = !qr.hidden;\n    });\n  });\n})();\n<\/script><\/p>\n<style data-source=\"ati_ccc_2023_j4_s1_trianglane_article_assets\">\n.entry-content>p:has(>script){display:none!important;height:0!important;margin:0!important;padding:0!important;overflow:hidden!important;line-height:0!important}\n.ati-lang-zh{display:none!important}\nhtml[lang^=\"zh\"] .ati-lang-en,body.translatepress-zh_CN .ati-lang-en{display:none!important}\nhtml[lang^=\"zh\"] .ati-lang-zh,body.translatepress-zh_CN .ati-lang-zh{display:block!important}\nhtml[lang^=\"zh\"] section.ati-lang-zh,body.translatepress-zh_CN section.ati-lang-zh{display:grid!important}\nhtml[lang^=\"zh\"] .ati-feedback-cta.ati-lang-zh,body.translatepress-zh_CN .ati-feedback-cta.ati-lang-zh{display:flex!important}\n.ati-post-article pre{margin:18px 0 24px!important;padding:18px 20px!important;overflow:auto;border:1px solid #263244;border-radius:8px;background:#0f172a!important;color:#e5e7eb!important;font-size:14px!important;line-height:1.55!important}\n.ati-post-article pre code{display:block;padding:0!important;background:transparent!important;color:inherit!important;white-space:pre!important}\n.ati-post-article code{padding:.14em .34em;border-radius:4px;background:#eef2f7;color:#0f172a;font-size:.92em}\n.ati-post-article h3{margin:30px 0 12px!important;color:#0f172a!important;font-size:23px!important;font-weight:900!important;line-height:1.25!important}\n.ati-post-article ul,.ati-post-article ol{margin:12px 0 22px!important;padding-left:24px!important;color:#334155}\n.ati-post-article li{margin:8px 0!important;line-height:1.65!important}\n.ati-post-article .ati-table-wrap{margin:18px 0 26px;overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px;background:#fff}\n.ati-post-article table{width:100%;border-collapse:collapse;color:#334155;font-size:14px;line-height:1.45}\n.ati-post-article th{background:#f8fafc;color:#0f172a;font-weight:900;text-align:left}\n.ati-post-article th,.ati-post-article td{padding:11px 13px;border-bottom:1px solid #e2e8f0;vertical-align:top}\n.ati-post-article tr:last-child td{border-bottom:0}\n.ati-feedback-cta{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:34px 0 24px;padding:22px 24px;border:1px solid #e2e8f0;border-left:4px solid #ffc400;border-radius:8px;background:#f8fafc}\n.ati-feedback-copy{min-width:0}\n.ati-feedback-cta p{margin:0!important}\n.ati-feedback-title{color:#0f172a!important;font-size:20px!important;font-weight:900!important;line-height:1.25!important}\n.ati-feedback-note{max-width:650px;margin-top:7px!important;color:#475569!important;font-size:15px!important;line-height:1.55!important}\n.ati-feedback-button{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;min-height:44px;padding:0 18px;border:1px solid #ffc400;border-radius:7px;background:#ffc400;color:#050505!important;font-size:14px;font-weight:900;text-decoration:none!important;white-space:nowrap;transition:background .18s ease,border-color .18s ease,transform .18s ease}\n.ati-feedback-button:hover{border-color:#d69e00;background:#ffd84d;transform:translateY(-1px)}\n@media(max-width:700px){.ati-feedback-cta{align-items:stretch;flex-direction:column;padding:20px}.ati-feedback-button{width:100%}}\n<\/style>\n<p><script data-source=\"ati_ccc_2023_j4_s1_trianglane_zh_20260923\">\n(function(){\n  if (location.pathname.indexOf('\/zh_cn\/') === -1) return;\n  document.title = \"CCC 2023 J4\/S1 Trianglane \u9898\u89e3\uff1a\u4ece\u4e09\u89d2\u5f62\u5468\u957f\u5230\u5171\u7528\u8fb9\u8ba1\u6570 | \u52a0\u901f\u5ea6\u601d\u7ef4\";\n  document.querySelectorAll('.entry-title').forEach(function(el) { el.textContent = \"CCC 2023 J4\/S1 Trianglane \u9898\u89e3\uff1a\u4ece\u4e09\u89d2\u5f62\u5468\u957f\u5230\u5171\u7528\u8fb9\u8ba1\u6570\"; });\n})();\n<\/script><script data-source=\"ati_article_feedback_cta\">\n(function(){\n  var cta = document.querySelector('[data-ati-feedback]');\n  if (!cta) return;\n  var isZh = location.pathname.indexOf('\/zh_cn\/') !== -1;\n  var contactPath = isZh ? '\/zh_cn\/contact\/' : '\/contact\/';\n  var articleTitle = (document.querySelector('.entry-title') || document.querySelector('.ati-hero h1') || {}).textContent || document.title || '';\n  var link = cta.querySelector('[data-ati-feedback-link]');\n  if (link) {\n    link.href = contactPath + '?ati_source=article&article_title=' + encodeURIComponent(articleTitle.trim()) + '&article_url=' + encodeURIComponent(location.href.split('#')[0]) + '#wpforms-form-76';\n  }\n})();\n<\/script><\/p>\n<p><script data-source=\"ati_strategy_phase1_nav_20260712\">\n(function(){\n  var base = 'https:\/\/accelthinking.com';\n  var isZh = location.pathname.toLowerCase().includes('\/zh_cn\/');\n  var t = {\"Home\": \"\u9996\u9875\", \"NorthStar\": \"\u5317\u6781\u661f\u6d4b\u8bc4\", \"Learning\": \"\u5b66\u4e60\u8def\u5f84\", \"Resources\": \"\u8d44\u6e90\u6587\u7ae0\", \"About\": \"\u5173\u4e8e\u6211\u4eec\", \"Contact\": \"\u8054\u7cfb\u6211\u4eec\", \"Start NorthStar\": \"\u5f00\u59cb\u5317\u6781\u661f\u6d4b\u8bc4\", \"Privacy Policy\": \"\u9690\u79c1\u653f\u7b56\", \"Terms & Conditions\": \"\u6761\u6b3e\u4e0e\u6761\u4ef6\", \"Close\": \"\u5173\u95ed\"};\n  var path = location.pathname.toLowerCase();\n  if (path.slice(-1) !== '\/') path += '\/';\n  var basePath = new URL(base).pathname.toLowerCase();\n  if (!basePath || basePath === '\/') basePath = '\/';\n  else basePath = basePath.replace(\/\\\/?$\/, '\/');\n  var zhHomePath = basePath === '\/' ? '\/zh_cn\/' : basePath + 'zh_cn\/';\n  function item(label, href, key) {\n    var active = false;\n    if (key === 'home') active = path === basePath || path === zhHomePath;\n    if (key !== 'home') active = path.indexOf('\/' + key + '\/') !== -1;\n    if (key === 'northstar') {\n      active = active || path.indexOf('\/northstar-quick-assessment\/') !== -1 || path.indexOf('\/northstar-assessment\/') !== -1 || path.indexOf('\/northstar-report\/') !== -1;\n    }\n    if (key === 'learning') {\n      active = active || path.indexOf('\/cp-academy\/') !== -1 || path.indexOf('\/python-programming-pathway\/') !== -1 || path.indexOf('\/ai-literacy\/') !== -1 || path.indexOf('\/python-assessment\/') !== -1;\n    }\n    if (key === 'resources') {\n      active = active || path.indexOf('\/resources\/') !== -1 || document.body.classList.contains('single-post');\n    }\n    return '<a class=\"' + (active ? 'active' : '') + '\" href=\"' + href + '\">' + (isZh ? (t[label] || label) : label) + '<\/a>';\n  }\n  function primary() {\n    return [\n      item('Home', base + '\/', 'home'),\n      item('NorthStar', base + '\/northstar\/', 'northstar'),\n      item('Learning', base + '\/learning\/', 'learning'),\n      item('Resources', base + '\/resources\/', 'resources'),\n      item('About', base + '\/about\/', 'about'),\n      item('Contact', base + '\/contact\/', 'contact')\n    ].join('');\n  }\n  function mobile() {\n    return primary() + '<a class=\"ati-mobile-cta\" href=\"' + base + '\/northstar\/\">' + (isZh ? t['Start NorthStar'] : 'Start NorthStar') + '<\/a><a class=\"ati-mobile-close\" href=\"#\">' + (isZh ? t.Close : 'Close') + '<\/a>';\n  }\n  document.querySelectorAll('.ati-nav,.ns-nav').forEach(function(nav) { nav.innerHTML = primary(); });\n  document.querySelectorAll('.ati-mobile-panel,.ati-mobile-nav-panel').forEach(function(nav) { nav.innerHTML = mobile(); });\n  document.querySelectorAll('.ati-footer nav,.ns-footer nav').forEach(function(nav) {\n    nav.innerHTML = primary() + item('Privacy Policy', base + '\/privacy-policy\/', 'privacy-policy') + item('Terms & Conditions', base + '\/terms-and-conditions\/', 'terms-and-conditions');\n  });\n  document.querySelectorAll('.ati-footer address,.ns-footer address').forEach(function(address) {\n    address.innerHTML = '<a href=\"mailto:info@accelthinking.com\">info@accelthinking.com<\/a><a href=\"tel:+18556265066\">' + (isZh ? '\u514d\u8d39\u7535\u8bdd\uff1a1-855-626-5066' : 'Toll-free: 1-855-626-5066') + '<\/a><span>' + (isZh ? '\u52a0\u62ff\u5927\u5b89\u5927\u7565\u7701\u5965\u514b\u7ef4\u5c14' : 'Oakville, Ontario, Canada') + '<\/span>';\n  });\n  document.querySelectorAll('.ati-header-cta,.ns-header-cta').forEach(function(a) {\n    a.href = base + '\/northstar\/';\n    a.textContent = isZh ? t['Start NorthStar'] : 'Start NorthStar';\n  });\n})();\n<\/script><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Learn CCC 2023 J4\/S1 Trianglane with perimeter counting, shared edges, parity, and O(C) Python and C++ solutions.<\/p>","protected":false},"author":2,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[7],"tags":[],"class_list":["post-1803","post","type-post","status-publish","format-standard","hentry","category-cp-weekly-challenge"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v28.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>CCC 2023 J4\/S1 Trianglane \u9898\u89e3\uff1a\u4ece\u4e09\u89d2\u5f62\u5468\u957f\u5230\u5171\u7528\u8fb9\u8ba1\u6570<\/title>\n<meta name=\"description\" content=\"\u7528\u5c40\u90e8\u8d21\u732e\u548c\u5171\u7528\u8fb9\u8ba1\u6570\u89e3\u51b3 CCC 2023 J4\/S1 Trianglane\uff0c\u5e76\u7406\u89e3\u5947\u5076\u6392\u5217\u4e0e O(C) \u7ebf\u6027\u626b\u63cf\u3002\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/accelthinking.com\/zh_cn\/ccc-2023-j4-s1-trianglane-solution-analysis\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CCC 2023 J4\/S1 Trianglane \u9898\u89e3\uff1a\u4ece\u4e09\u89d2\u5f62\u5468\u957f\u5230\u5171\u7528\u8fb9\u8ba1\u6570\" \/>\n<meta property=\"og:description\" content=\"\u7528\u5c40\u90e8\u8d21\u732e\u548c\u5171\u7528\u8fb9\u8ba1\u6570\u89e3\u51b3 CCC 2023 J4\/S1 Trianglane\uff0c\u5e76\u7406\u89e3\u5947\u5076\u6392\u5217\u4e0e O(C) \u7ebf\u6027\u626b\u63cf\u3002\" \/>\n<meta property=\"og:url\" content=\"https:\/\/accelthinking.com\/zh_cn\/ccc-2023-j4-s1-trianglane-solution-analysis\/\" \/>\n<meta property=\"og:site_name\" content=\"Accel Thinking\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-23T15:04:32+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-09-29T03:16:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/accelthinking.com\/wp-content\/plugins\/accel-analytics\/assets\/accel-thinking-og.png\" \/>\n<meta name=\"author\" content=\"ATI Builder\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"CCC 2023 J4\/S1 Trianglane \u9898\u89e3\uff1a\u4ece\u4e09\u89d2\u5f62\u5468\u957f\u5230\u5171\u7528\u8fb9\u8ba1\u6570\" \/>\n<meta name=\"twitter:description\" content=\"\u7528\u5c40\u90e8\u8d21\u732e\u548c\u5171\u7528\u8fb9\u8ba1\u6570\u89e3\u51b3 CCC 2023 J4\/S1 Trianglane\uff0c\u5e76\u7406\u89e3\u5947\u5076\u6392\u5217\u4e0e O(C) \u7ebf\u6027\u626b\u63cf\u3002\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/accelthinking.com\/wp-content\/plugins\/accel-analytics\/assets\/accel-thinking-og.png\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"ATI Builder\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"8 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/accelthinking.com\\\/zh_cn\\\/ccc-2023-j4-s1-trianglane-solution-analysis\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/accelthinking.com\\\/ccc-2023-j4-s1-trianglane-solution-analysis\\\/\"},\"author\":{\"name\":\"ATI Builder\",\"@id\":\"https:\\\/\\\/accelthinking.com\\\/#\\\/schema\\\/person\\\/bb7b104098a9c6c91f4fe54c4ab4a348\"},\"headline\":\"CCC 2023 J4\\\/S1 Trianglane \u9898\u89e3\uff1a\u4ece\u4e09\u89d2\u5f62\u5468\u957f\u5230\u5171\u7528\u8fb9\u8ba1\u6570\",\"datePublished\":\"2026-09-23T15:04:32+00:00\",\"dateModified\":\"2026-09-29T03:16:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/accelthinking.com\\\/ccc-2023-j4-s1-trianglane-solution-analysis\\\/\"},\"wordCount\":1127,\"image\":{\"@id\":\"https:\\\/\\\/accelthinking.com\\\/ccc-2023-j4-s1-trianglane-solution-analysis\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/accelthinking.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/logo-dark-cropped-51.png\",\"articleSection\":[\"CP Weekly Challenge\"],\"inLanguage\":\"zh-CN\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/accelthinking.com\\\/zh_cn\\\/ccc-2023-j4-s1-trianglane-solution-analysis\\\/\",\"url\":\"https:\\\/\\\/accelthinking.com\\\/zh_cn\\\/ccc-2023-j4-s1-trianglane-solution-analysis\\\/\",\"name\":\"CCC 2023 J4\\\/S1 Trianglane \u9898\u89e3\uff1a\u4ece\u4e09\u89d2\u5f62\u5468\u957f\u5230\u5171\u7528\u8fb9\u8ba1\u6570\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/accelthinking.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/accelthinking.com\\\/ccc-2023-j4-s1-trianglane-solution-analysis\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/accelthinking.com\\\/ccc-2023-j4-s1-trianglane-solution-analysis\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/accelthinking.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/logo-dark-cropped-51.png\",\"datePublished\":\"2026-09-23T15:04:32+00:00\",\"dateModified\":\"2026-09-29T03:16:30+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/accelthinking.com\\\/#\\\/schema\\\/person\\\/bb7b104098a9c6c91f4fe54c4ab4a348\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/accelthinking.com\\\/ccc-2023-j4-s1-trianglane-solution-analysis\\\/#breadcrumb\"},\"inLanguage\":\"zh-CN\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/accelthinking.com\\\/zh_cn\\\/ccc-2023-j4-s1-trianglane-solution-analysis\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-CN\",\"@id\":\"https:\\\/\\\/accelthinking.com\\\/zh_cn\\\/ccc-2023-j4-s1-trianglane-solution-analysis\\\/#primaryimage\",\"url\":\"https:\\\/\\\/accelthinking.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/logo-dark-cropped-51.png\",\"contentUrl\":\"https:\\\/\\\/accelthinking.com\\\/wp-content\\\/uploads\\\/2026\\\/06\\\/logo-dark-cropped-51.png\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/accelthinking.com\\\/zh_cn\\\/ccc-2023-j4-s1-trianglane-solution-analysis\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/accelthinking.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CCC 2023 J4\\\/S1 Trianglane \u9898\u89e3\uff1a\u4ece\u4e09\u89d2\u5f62\u5468\u957f\u5230\u5171\u7528\u8fb9\u8ba1\u6570\",\"item\":\"https:\\\/\\\/accelthinking.com\\\/zh_cn\\\/ccc-2023-j4-s1-trianglane-solution-analysis\\\/\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/accelthinking.com\\\/#website\",\"url\":\"https:\\\/\\\/accelthinking.com\\\/\",\"name\":\"Accel Thinking\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/accelthinking.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"zh-CN\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/accelthinking.com\\\/#\\\/schema\\\/person\\\/bb7b104098a9c6c91f4fe54c4ab4a348\",\"name\":\"ATI Builder\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-CN\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c77af32770dc7e2c3451795691a8d8e3e2d0c9faa5af72043c703fa202bdcd81?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c77af32770dc7e2c3451795691a8d8e3e2d0c9faa5af72043c703fa202bdcd81?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/c77af32770dc7e2c3451795691a8d8e3e2d0c9faa5af72043c703fa202bdcd81?s=96&d=mm&r=g\",\"caption\":\"ATI Builder\"},\"url\":\"https:\\\/\\\/accelthinking.com\\\/zh_cn\\\/author\\\/ati-builder\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"CCC 2023 J4\/S1 Trianglane \u9898\u89e3\uff1a\u4ece\u4e09\u89d2\u5f62\u5468\u957f\u5230\u5171\u7528\u8fb9\u8ba1\u6570","description":"\u7528\u5c40\u90e8\u8d21\u732e\u548c\u5171\u7528\u8fb9\u8ba1\u6570\u89e3\u51b3 CCC 2023 J4\/S1 Trianglane\uff0c\u5e76\u7406\u89e3\u5947\u5076\u6392\u5217\u4e0e O(C) \u7ebf\u6027\u626b\u63cf\u3002","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/accelthinking.com\/zh_cn\/ccc-2023-j4-s1-trianglane-solution-analysis\/","og_locale":"zh_CN","og_type":"article","og_title":"CCC 2023 J4\/S1 Trianglane \u9898\u89e3\uff1a\u4ece\u4e09\u89d2\u5f62\u5468\u957f\u5230\u5171\u7528\u8fb9\u8ba1\u6570","og_description":"\u7528\u5c40\u90e8\u8d21\u732e\u548c\u5171\u7528\u8fb9\u8ba1\u6570\u89e3\u51b3 CCC 2023 J4\/S1 Trianglane\uff0c\u5e76\u7406\u89e3\u5947\u5076\u6392\u5217\u4e0e O(C) \u7ebf\u6027\u626b\u63cf\u3002","og_url":"https:\/\/accelthinking.com\/zh_cn\/ccc-2023-j4-s1-trianglane-solution-analysis\/","og_site_name":"Accel Thinking","article_published_time":"2026-09-23T15:04:32+00:00","article_modified_time":"2026-09-29T03:16:30+00:00","og_image":[{"url":"https:\/\/accelthinking.com\/wp-content\/plugins\/accel-analytics\/assets\/accel-thinking-og.png","type":"","width":"","height":""}],"author":"ATI Builder","twitter_card":"summary_large_image","twitter_title":"CCC 2023 J4\/S1 Trianglane \u9898\u89e3\uff1a\u4ece\u4e09\u89d2\u5f62\u5468\u957f\u5230\u5171\u7528\u8fb9\u8ba1\u6570","twitter_description":"\u7528\u5c40\u90e8\u8d21\u732e\u548c\u5171\u7528\u8fb9\u8ba1\u6570\u89e3\u51b3 CCC 2023 J4\/S1 Trianglane\uff0c\u5e76\u7406\u89e3\u5947\u5076\u6392\u5217\u4e0e O(C) \u7ebf\u6027\u626b\u63cf\u3002","twitter_image":"https:\/\/accelthinking.com\/wp-content\/plugins\/accel-analytics\/assets\/accel-thinking-og.png","twitter_misc":{"Written by":"ATI Builder","Est. reading time":"8 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/accelthinking.com\/zh_cn\/ccc-2023-j4-s1-trianglane-solution-analysis\/#article","isPartOf":{"@id":"https:\/\/accelthinking.com\/ccc-2023-j4-s1-trianglane-solution-analysis\/"},"author":{"name":"ATI Builder","@id":"https:\/\/accelthinking.com\/#\/schema\/person\/bb7b104098a9c6c91f4fe54c4ab4a348"},"headline":"CCC 2023 J4\/S1 Trianglane \u9898\u89e3\uff1a\u4ece\u4e09\u89d2\u5f62\u5468\u957f\u5230\u5171\u7528\u8fb9\u8ba1\u6570","datePublished":"2026-09-23T15:04:32+00:00","dateModified":"2026-09-29T03:16:30+00:00","mainEntityOfPage":{"@id":"https:\/\/accelthinking.com\/ccc-2023-j4-s1-trianglane-solution-analysis\/"},"wordCount":1127,"image":{"@id":"https:\/\/accelthinking.com\/ccc-2023-j4-s1-trianglane-solution-analysis\/#primaryimage"},"thumbnailUrl":"https:\/\/accelthinking.com\/wp-content\/uploads\/2026\/06\/logo-dark-cropped-51.png","articleSection":["CP Weekly Challenge"],"inLanguage":"zh-CN"},{"@type":"WebPage","@id":"https:\/\/accelthinking.com\/zh_cn\/ccc-2023-j4-s1-trianglane-solution-analysis\/","url":"https:\/\/accelthinking.com\/zh_cn\/ccc-2023-j4-s1-trianglane-solution-analysis\/","name":"CCC 2023 J4\/S1 Trianglane \u9898\u89e3\uff1a\u4ece\u4e09\u89d2\u5f62\u5468\u957f\u5230\u5171\u7528\u8fb9\u8ba1\u6570","isPartOf":{"@id":"https:\/\/accelthinking.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/accelthinking.com\/ccc-2023-j4-s1-trianglane-solution-analysis\/#primaryimage"},"image":{"@id":"https:\/\/accelthinking.com\/ccc-2023-j4-s1-trianglane-solution-analysis\/#primaryimage"},"thumbnailUrl":"https:\/\/accelthinking.com\/wp-content\/uploads\/2026\/06\/logo-dark-cropped-51.png","datePublished":"2026-09-23T15:04:32+00:00","dateModified":"2026-09-29T03:16:30+00:00","author":{"@id":"https:\/\/accelthinking.com\/#\/schema\/person\/bb7b104098a9c6c91f4fe54c4ab4a348"},"breadcrumb":{"@id":"https:\/\/accelthinking.com\/ccc-2023-j4-s1-trianglane-solution-analysis\/#breadcrumb"},"inLanguage":"zh-CN","potentialAction":[{"@type":"ReadAction","target":["https:\/\/accelthinking.com\/zh_cn\/ccc-2023-j4-s1-trianglane-solution-analysis\/"]}]},{"@type":"ImageObject","inLanguage":"zh-CN","@id":"https:\/\/accelthinking.com\/zh_cn\/ccc-2023-j4-s1-trianglane-solution-analysis\/#primaryimage","url":"https:\/\/accelthinking.com\/wp-content\/uploads\/2026\/06\/logo-dark-cropped-51.png","contentUrl":"https:\/\/accelthinking.com\/wp-content\/uploads\/2026\/06\/logo-dark-cropped-51.png"},{"@type":"BreadcrumbList","@id":"https:\/\/accelthinking.com\/zh_cn\/ccc-2023-j4-s1-trianglane-solution-analysis\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/accelthinking.com\/"},{"@type":"ListItem","position":2,"name":"CCC 2023 J4\/S1 Trianglane \u9898\u89e3\uff1a\u4ece\u4e09\u89d2\u5f62\u5468\u957f\u5230\u5171\u7528\u8fb9\u8ba1\u6570","item":"https:\/\/accelthinking.com\/zh_cn\/ccc-2023-j4-s1-trianglane-solution-analysis\/"}]},{"@type":"WebSite","@id":"https:\/\/accelthinking.com\/#website","url":"https:\/\/accelthinking.com\/","name":"Accel Thinking","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/accelthinking.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"zh-CN"},{"@type":"Person","@id":"https:\/\/accelthinking.com\/#\/schema\/person\/bb7b104098a9c6c91f4fe54c4ab4a348","name":"ATI Builder","image":{"@type":"ImageObject","inLanguage":"zh-CN","@id":"https:\/\/secure.gravatar.com\/avatar\/c77af32770dc7e2c3451795691a8d8e3e2d0c9faa5af72043c703fa202bdcd81?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/c77af32770dc7e2c3451795691a8d8e3e2d0c9faa5af72043c703fa202bdcd81?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/c77af32770dc7e2c3451795691a8d8e3e2d0c9faa5af72043c703fa202bdcd81?s=96&d=mm&r=g","caption":"ATI Builder"},"url":"https:\/\/accelthinking.com\/zh_cn\/author\/ati-builder\/"}]}},"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/accelthinking.com\/zh_cn\/wp-json\/wp\/v2\/posts\/1803","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/accelthinking.com\/zh_cn\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/accelthinking.com\/zh_cn\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/accelthinking.com\/zh_cn\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/accelthinking.com\/zh_cn\/wp-json\/wp\/v2\/comments?post=1803"}],"version-history":[{"count":2,"href":"https:\/\/accelthinking.com\/zh_cn\/wp-json\/wp\/v2\/posts\/1803\/revisions"}],"predecessor-version":[{"id":1858,"href":"https:\/\/accelthinking.com\/zh_cn\/wp-json\/wp\/v2\/posts\/1803\/revisions\/1858"}],"wp:attachment":[{"href":"https:\/\/accelthinking.com\/zh_cn\/wp-json\/wp\/v2\/media?parent=1803"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/accelthinking.com\/zh_cn\/wp-json\/wp\/v2\/categories?post=1803"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/accelthinking.com\/zh_cn\/wp-json\/wp\/v2\/tags?post=1803"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}