Codeforces ---- Hello 2020
3898 단어 codeforces
나는 최종 테스트를 끊지 않았다. 나는 파랗다!하하하하, 오랫동안 안 쳤는데 정말 생각지도 못했어. 그렇게 힘들게 쳤는데 최종 테스트도 안 끊고 파랗게 됐어. 하하하하.
---------------------------------------------------------
와, 헬로 2019 하나도 안 우호적인 것 같아...B문제는 귀찮아서 발을 동동 구르며 계속 비뚤어지게 생각하는데...파랗지 않을까요?
이번에 큰 사이즈로 돌아와서 앞으로도 계속 큰 사이즈를 쳐서 작은 사이즈를 타지 않고 놀았다.
전송문:http://codeforces.com/contest/1284
A. New Year and Naming
이것은 매우 간단하다. 어떤 나라의 갑을병정과 유사하다...자축인묘.연도에 맞게.
나머지 출력을 찾으면 끝난다.아무도 안 할 거라고 믿어요.
#include
#define ll long long
#define INF 0x3f3f3f3f3f3f3f3fLL
#define inf 0x3f3f3f3f
#define maxn 100010
using namespace std;
int a[maxn],n,m,x,y,z,T,c,v;
char ch[25][maxn],chh[25][maxn];
int main()
{
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++)
{
scanf("%s",ch[i]);
}
for(int i=1;i<=m;i++)
{
scanf("%s",chh[i]);
}
scanf("%d",&T);
while(T--)
{
scanf("%d",&x);
c=x%n;
v=x%m;
if(c==0) c=n;
if(v==0) v=m;
printf("%s%s
",ch[c],chh[v]);
}
//if() printf("YES
");
//else printf("NO
");
}
B. New Year and Ascent Sequence
제목: ascent 정의: 서열 a, 정렬 쌍이 존재합니다. 즉 1
n개의 서열을 정하고 n개의 서열을 두 개 조합한 n^2개의 조합 서열 중 몇 개의 ascent 서열이 있는지 구합니다.
사고방식: 처음에 폭력이 일어나면 폭력을 생각하면 기적이 일어난다!그리고 T+1...그리고 모퉁이를 돌아서 C를 했어요. C는 간단해요.다시 돌아와서 B를 했는데 한 시간 + 했어요.하긴 취했어!!
그리고 천천히 생각해서 자신을 성공적으로 돌려넣었다.마지막으로, 다행히 만들어 냈으니 망정이지, 그렇지 않았다면 완전히 식었을 것이다!!!
역방향 사고, ascent 서열 수량=n^2 - 비ascent 서열 수량.
ascent 서열이 비교적 규칙적인 것이 아니라 두 서열이 단조롭고 증가하지 않으며 연결되어도 단조롭고 증가하지 않는다.그래서 이러한 단조로운 서열을 찾아낼 수 있다.pos는 최대 최소값,vis[i]=pos 내의 서열 중 최소값<=i의 개수를 저장한다.
마지막으로 모든pos의 서열을 고려하면 그와 비ascent 서열의 서열로 연결할 수 있습니다.
코드:
#include
#define ll long long
#define INF 0x3f3f3f3f3f3f3f3fLL
#define inf 0x3f3f3f3f
#define maxn 100010
using namespace std;
ll ans;
struct AA
{
ll l,r;
bool operator 1)
{
if(a[j]>a[j-1]) ok=1;
}
}
if(!ok)
{
pos[++num].l=minn;
pos[num].r=maxx;
}
}
sort(pos+1,pos+1+num);
int tt=1;
for(int i=0;i<=1000000;i++)
{
if(i) vis[i]=vis[i-1];
while(tt<=num&&i==pos[tt].l)
{
vis[i]++;
tt++;
}
}
for(int i=1;i<=num;i++)
{
ans+=(num-vis[pos[i].r-1]);
}
printf("%lld
",n*n-ans);
}
C. New Year and Permutation
제목:framed segment 정의:구간[l,r],max값-min값=r-l;1 - n으로 구성된 n을 구합니다!모든 framed segment의 개수%m
사고방식:max-min=r-l 때문에 구간[l,r]내의 r-l+1개수는 마인~max 이 max-min+1개수의 임의적인 조합이고
사실은 조합수의 문제인데 공식을 열거하면 된다. 그리고 조합수를 사용하지 않고 바로 구할 수 있는 것은 모두 C(x,1)모드의 조합수라는 것을 발견했다.승급만 요청하시면 됩니다~
framed segment의 구간 길이 l 값을 1~n에서 가져옵니다.길이가 n인 구간 중 C(n-l+1, 1)개의 연속 길이가 l인 구간을 선택할 수 있다.구간은 C(n-l+1,1)종의 연속적인 서열을 선택할 수 있다.저장, 그리고 구간 [l,r]에 l!,외부 전체 배열(n-l)!,모조리×길이가 l인 framed segment의 개수입니다.
이 순서대로 n=3의 상황을 풀면 이해하기 쉽다.
코드:
#include
using namespace std;
typedef long long ll;
const ll MAXN=262144+5;
ll a[MAXN],mod,n;
ll fact[MAXN],ifact[MAXN];//fact[i] i ,ifact[i] ,
ll pow_mod(ll n,ll k,ll mod) // n^k m
{
ll res=1;
n=n%mod;
while(k>0)
{
if(k&1)
res=res*n%mod;
n=n*n%mod;
k>>=1;
}
return res;
}
void init()//
{
fact[0]=ifact[0]=1;
for(int i=1;i<=n;++i)
{
fact[i]=(fact[i-1]*i)%mod;
ifact[i]=pow_mod(fact[i],mod-2,mod);
}
}
ll C(ll n,ll m)//
{
if(n
D문제 폭력은 기적이 없다!!!T, 안녕히 계세요!!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Codeforces Round #715 Div. 2C The Sports Festival: 구간 DP전형구간 DP의 초전형. 이하, 0-indexed. 입력을 정렬하여 어디서나 시작하고 최적으로 좌우로 계속 유지하면 좋다는 것을 알 수 있습니다. {2000})$의 주문이 된다. 우선, 입력을 소트하여 n개의 요소를 $...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.