初入DP

给你一行数字,可任选数字(相邻数字不能选)求和,求最大值

Input:

第一行是整数N

第二行是N个整数

Output:

输入这个最大值

Examples

input:

5

4 1 1 9 1    

output:                            

13                        //选 4 9  =13

input:

7

1 2 4 1 7 8 3          //   选1 4 7 3 =15

output:

15

                                      

对于第i个数有2种状态 选或不选

选:opt(i) = opt(i-2) + arr[i];

不选:opt(i) = opt(i-1);

所以取二者中最大的数 即:opt(i) = Max(opt(i-2)+arr[i] , opt(i-1))

另:

opt[0] = arr[0]  //只有一个数.

opt[1] = Max(arr[0],arr[1]) // 二个数,应选择其中大的数

代码如下:

给出一行正整数数字集合,从中人选n个数字能否组成s(s给出)

Input:

输入有三行

第一行 一个N

第二行 N个数字

第二行 S

 

Onput:

输出只有一行

能组成输出"True",否则输出"False"

 Example

input:

5

3 34 4 5 12 2 

7

output:                            

True                     //选 3 4   =7

input:

5

1 1 1 1 1          //   选1 1 1 1 1  =5

output:

True

对于第i个数有2种状态 选或不选  从后往前递推

选: subset(arr,i-1,s-a[i])

不选:subset(arr,i-1,s);

有三个出口

1: 此时 s ==0

2: arr[0] == s   //递推到最后一个, 此时恰好等于s

3.arr[i]>s :  跳过,继续下一个

 return subset(arr,i-1,s)

 

给出代码:

#include<iostream>
using namespace std;

bool subset(int *a,int i,int s)
{
    if(s==0)
        return true;
    else if(i == 0)
        return a[0] == s;
    else if(a[i]>s)
        return subset(a,i-1,s);
    else
    {
        bool A,B;
        A = subset(a,i-1,s-a[i]);                       //选
        B = subset(a,i-1,s);                            //不选
        return A||B;                                //只需要任意一种能够满足 输出True
    }
}
int main()
{
    int arr[100];
    int N;
    int S;
    cin>>N;
    for(int i=0;i<N;i++)
        cin>>arr[i];
    cin>>S;
    cout<<(subset(arr,N,S)?"Yes":"No");
    return 0;

}
 

 

 

 

 

给错参照了,参照最新的jafrsho07040 package jp.or.jaf.syg.feature.jafrsho07.jafrsho07040.components import androidx.compose.foundation.background import androidx.compose.foundation.border import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.material3.MaterialTheme import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.em import androidx.hilt.navigation.compose.hiltViewModel import jp.or.jaf.syg.core.designsystem.theme.FigmaDesign.dp import jp.or.jaf.syg.core.designsystem.theme.FigmaDesign.sp import jp.or.jaf.syg.core.designsystem.theme.Jaf191F53 import jp.or.jaf.syg.core.designsystem.theme.JafScrollBarDark import jp.or.jaf.syg.core.designsystem.theme.JafTableBorderDark import jp.or.jaf.syg.core.designsystem.theme.JafTableBorderLight import jp.or.jaf.syg.core.designsystem.theme.JafTableEvenBackgroundDark import jp.or.jaf.syg.core.designsystem.theme.JafTableEvenBackgroundLight import jp.or.jaf.syg.core.designsystem.theme.JafTableHeaderBackgroundLight import jp.or.jaf.syg.core.designsystem.theme.JafTableOddBackgroundDark import jp.or.jaf.syg.core.designsystem.theme.JafTableOddBackgroundLight import jp.or.jaf.syg.core.designsystem.theme.scrollBar import jp.or.jaf.syg.core.ui.components.JafCheckBox import jp.or.jaf.syg.core.ui.components.JafText import jp.or.jaf.syg.core.ui.components.JafTextField import jp.or.jaf.syg.core.ui.components.JafTextSelect import jp.or.jaf.syg.core.ui.components.JafVerticalScrollbar import jp.or.jaf.syg.core.ui.components.ScrollbarStyle import jp.or.jaf.syg.core.ui.components.rememberScrollbarAdapter import jp.or.jaf.syg.domain.model.common.AuthKbnCd import jp.or.jaf.syg.feature.R import jp.or.jaf.syg.feature.jafrsho07.jafrsho07040.JAFRSHO07040Action import jp.or.jaf.syg.feature.jafrsho07.jafrsho07040.JAFRSHO07040UiStateData import jp.or.jaf.syg.feature.jafrsho07.jafrsho07040.JAFRSHO07040ViewModel /** *コンテンツ領域 */ @Composable fun JAFRSHO07040Content( viewModel: JAFRSHO07040ViewModel = hiltViewModel(), stateData: JAFRSHO07040UiStateData, onItemClick: (Int) -> Unit, ) { val lazyListState = rememberLazyListState() Column( modifier = Modifier .background(color = Color.Transparent) .fillMaxWidth() .fillMaxHeight() .padding(horizontal = 20.dp, vertical = 10.dp) ) { /** キャッシュレス決済画面から呼び出された場合 */ if (stateData.henkinReasonFlg == "1") { /** メッセージ */ JafText( text = stateData.lblMessage, textAlign = TextAlign.Start, maxLines = 2, modifier = Modifier .fillMaxWidth() .height(100.dp) .padding(horizontal = 5.dp, vertical = 2.dp), fontSize = 8.em ) /** 返金理由 */ JafTextField( label = stringResource(id = R.string.txtbox_henkin_reason), labelModifier = Modifier.width(128.dp) .height(64.dp) .padding(vertical = 6.dp), labelFontSize = 32, isRequired = stateData.isActiveEnable, ) { /** 返金理由 */ JafText( modifier = Modifier .fillMaxWidth() .height(55.dp) .border( 1.dp, if (isSystemInDarkTheme()) { JafTableBorderDark } else { JafTableBorderLight } ) .padding(horizontal = 10.dp, vertical = 2.5.dp), textAlign = TextAlign.Start, text = stateData.txtboxHenkinReason, fontSize = 32.sp ) } Row { Spacer( modifier = Modifier .width(188.dp) ) /** 返金理由選択 */ LazyColumn( modifier = Modifier .fillMaxWidth() .padding(horizontal = 20.dp) .height(300.dp), ) { itemsIndexed(stateData.lstboxHenkinReason) { index, item -> val rowColor = if (index % 2 == 0) { if (isSystemInDarkTheme()) { JafTableEvenBackgroundDark } else { JafTableOddBackgroundLight } } else { if (isSystemInDarkTheme()) { JafTableOddBackgroundDark.copy(0.1F, 255F, 255F, 255F) } else { JafTableEvenBackgroundLight } } Box( modifier = Modifier .height(65.dp) .border( 1.dp, if (isSystemInDarkTheme()) { JafTableBorderDark } else { JafTableBorderLight } ) .background(rowColor) ) { JafTextSelect( value = item.reason, rowModifier = Modifier.padding(horizontal = 10.dp, vertical = 5.dp), fontSize = 32, overflow = TextOverflow.Ellipsis, onValueClick = { onItemClick(index) }, ) } } } } } else { /** 指令確認画面から呼び出された場合 */ /** 権限区分コードがJAF責任者またはJAF隊員の場合、 */ if (stateData.authKbnCd == AuthKbnCd.ADMINISTRATOR.code || stateData.authKbnCd == AuthKbnCd.ADMINISTRATORS.code || stateData.authKbnCd == AuthKbnCd.DIRECT_SERVICE_MEMBER.code || stateData.authKbnCd == AuthKbnCd.DIRECT_SERVICE_MEMBERS.code ) { Box( modifier = Modifier .fillMaxWidth() .background( if (isSystemInDarkTheme()) { JafTableEvenBackgroundDark } else { JafTableHeaderBackgroundLight } ) .height(66.dp) ) /** 取消理由 */ JafTextField( label = stringResource(id = R.string.txtbox_torikeshi_reason), labelModifier = Modifier.width(128.dp) .height(64.dp) .padding(vertical = 6.dp), labelFontSize = 32, isRequired = stateData.isActiveEnable, ) { JafText( modifier = Modifier .fillMaxWidth() .height(55.dp) .border( 1.dp, if (isSystemInDarkTheme()) { JafTableBorderDark } else { JafTableBorderLight } ) .padding(horizontal = 10.dp, vertical = 2.5.dp), textAlign = TextAlign.Start, text = stateData.lblTorikeshiReason, fontSize = 32.sp, ) } Row { Spacer( modifier = Modifier .width(208.dp) ) Box( modifier = Modifier .border( 1.dp, if (isSystemInDarkTheme()) { JafTableBorderDark } else { JafTableBorderLight } ) ) { /** 取消理由選択 */ LazyColumn( modifier = Modifier .fillMaxHeight(), state = lazyListState ) { itemsIndexed(stateData.lstboxTorikeshiReason) { index, item -> val rowColor = if (index % 2 == 0) { if (isSystemInDarkTheme()) { JafTableEvenBackgroundDark } else { JafTableOddBackgroundLight } } else { if (isSystemInDarkTheme()) { JafTableOddBackgroundDark.copy(0.1F, 255F, 255F, 255F) } else { JafTableEvenBackgroundLight } } Box( modifier = Modifier .height(63.dp) .border( 1.dp, if (isSystemInDarkTheme()) { JafTableBorderDark } else { JafTableBorderLight } ) .background(rowColor) ) { JafTextSelect( value = item.reason, rowModifier = Modifier.padding( horizontal = 10.dp, vertical = 5.dp ), fontSize = 32, overflow = TextOverflow.Ellipsis, onValueClick = { onItemClick(index) }, ) } } } if (stateData.lstboxTorikeshiReason.size > 5) { // スクロールバー JafVerticalScrollbar( modifier = Modifier .align(Alignment.CenterEnd), adapter = rememberScrollbarAdapter( listState = lazyListState, containerSize = 630f ), style = ScrollbarStyle( thickness = 10.dp, thumbColor = MaterialTheme.colorScheme.scrollBar, trackColor = if (isSystemInDarkTheme()) { Jaf191F53 } else { JafScrollBarDark }, showArrow = true, trackSize = 24.dp, autoHide = false ), bottomArrowModifier = Modifier.padding(bottom = 1.dp) ) } } } } else if (stateData.authKbnCd == AuthKbnCd.SECURITY_COMPANY.code || stateData.authKbnCd == AuthKbnCd.SECURITY_COMPANYS.code ) { if (stateData.rs1Count > 0) { /** 取消理由 */ JafTextField( label = stringResource(id = R.string.txtbox_torikeshi_reason), labelModifier = Modifier.width(128.dp) .height(64.dp) .padding(vertical = 6.dp), labelFontSize = 32, isRequired = stateData.isActiveEnable, ) { JafText( modifier = Modifier .fillMaxWidth() .height(55.dp) .border( 1.dp, if (isSystemInDarkTheme()) { JafTableBorderDark } else { JafTableBorderLight } ) .padding(horizontal = 10.dp, vertical = 2.5.dp), textAlign = TextAlign.Start, text = stateData.lblTorikeshiReason, fontSize = 32.sp, ) } Row { Spacer( modifier = Modifier .width(208.dp) ) Box( modifier = Modifier .border( 1.dp, if (isSystemInDarkTheme()) { JafTableBorderDark } else { JafTableBorderLight } ) ) { /** 取消理由選択 */ LazyColumn( modifier = Modifier .fillMaxHeight(), state = lazyListState ) { itemsIndexed(stateData.lstboxTorikeshiReason) { index, item -> val rowColor = if (index % 2 == 0) { if (isSystemInDarkTheme()) { JafTableEvenBackgroundDark } else { JafTableOddBackgroundLight } } else { if (isSystemInDarkTheme()) { JafTableOddBackgroundDark.copy(0.1F, 255F, 255F, 255F) } else { JafTableEvenBackgroundLight } } Box( modifier = Modifier .height(63.dp) .border( 1.dp, if (isSystemInDarkTheme()) { JafTableBorderDark } else { JafTableBorderLight } ) .background(rowColor) ) { JafTextSelect( value = item.reason, rowModifier = Modifier.padding( horizontal = 10.dp, vertical = 5.dp ), fontSize = 32, overflow = TextOverflow.Ellipsis, onValueClick = { onItemClick(index) }, ) } } } if (stateData.lstboxTorikeshiReason.size > 6) { // スクロールバー JafVerticalScrollbar( modifier = Modifier .align(Alignment.CenterEnd), adapter = rememberScrollbarAdapter( listState = lazyListState, containerSize = 630f ), style = ScrollbarStyle( thickness = 10.dp, thumbColor = MaterialTheme.colorScheme.scrollBar, trackColor = if (isSystemInDarkTheme()) { Jaf191F53 } else { JafScrollBarDark }, showArrow = true, trackSize = 24.dp, autoHide = false ), bottomArrowModifier = Modifier.padding(bottom = 1.dp) ) } } } } else { Box( modifier = Modifier .background( if (isSystemInDarkTheme()) { JafTableEvenBackgroundDark } else { JafTableHeaderBackgroundLight } ) .fillMaxWidth() .height(66.dp) ) { JafTextField( // 伝票有 label = stringResource(id = R.string.chkbox_dempyoUmu), labelModifier = Modifier.width(150.dp) .height(58.dp) .padding(vertical = 4.dp), labelFontSize = 32, ) { JafCheckBox( label = "", checked = stateData.chkboxDempyoUmu, onCheckedChange = { viewModel.onAction( JAFRSHO07040Action.OnDempyoUmu ) }, ) } } /** 取消理由 */ JafTextField( label = stringResource(id = R.string.txtbox_torikeshi_reason), labelModifier = Modifier.width(128.dp) .height(64.dp) .padding(vertical = 6.dp), labelFontSize = 32, isRequired = stateData.isActiveEnable, ) { JafText( modifier = Modifier .fillMaxWidth() .height(55.dp) .border( 1.dp, if (isSystemInDarkTheme()) { JafTableBorderDark } else { JafTableBorderLight } ) .padding(horizontal = 10.dp, vertical = 2.5.dp), textAlign = TextAlign.Start, text = stateData.lblTorikeshiReason, fontSize = 32.sp, ) } Row { Spacer( modifier = Modifier .width(208.dp) ) Box( modifier = Modifier .border( 1.dp, if (isSystemInDarkTheme()) { JafTableBorderDark } else { JafTableBorderLight } ) ) { /** 取消理由選択 */ LazyColumn( modifier = Modifier .fillMaxHeight(), state = lazyListState ) { itemsIndexed(stateData.lstboxTorikeshiReason) { index, item -> val rowColor = if (index % 2 == 0) { if (isSystemInDarkTheme()) { JafTableEvenBackgroundDark } else { JafTableOddBackgroundLight } } else { if (isSystemInDarkTheme()) { JafTableOddBackgroundDark.copy(0.1F, 255F, 255F, 255F) } else { JafTableEvenBackgroundLight } } Box( modifier = Modifier .height(63.dp) .border( 1.dp, if (isSystemInDarkTheme()) { JafTableBorderDark } else { JafTableBorderLight } ) .background(rowColor) ) { JafTextSelect( value = item.reason, rowModifier = Modifier.padding( horizontal = 10.dp, vertical = 5.dp ), fontSize = 32, overflow = TextOverflow.Ellipsis, onValueClick = { onItemClick(index) }, ) } } } if (stateData.lstboxTorikeshiReason.size > 5) { // スクロールバー JafVerticalScrollbar( modifier = Modifier .align(Alignment.CenterEnd), adapter = rememberScrollbarAdapter( listState = lazyListState, containerSize = 630f ), style = ScrollbarStyle( thickness = 10.dp, thumbColor = MaterialTheme.colorScheme.scrollBar, trackColor = if (isSystemInDarkTheme()) { Jaf191F53 } else { JafScrollBarDark }, showArrow = true, trackSize = 24.dp, autoHide = false ), bottomArrowModifier = Modifier.padding(bottom = 1.dp) ) } } } } } else { Box( modifier = Modifier .background( if (isSystemInDarkTheme()) { JafTableEvenBackgroundDark } else { JafTableHeaderBackgroundLight } ) .fillMaxWidth() .height(66.dp) ) { JafTextField( // 伝票有 label = stringResource(id = R.string.chkbox_dempyoUmu), labelModifier = Modifier.width(150.dp) .height(58.dp) .padding(vertical = 4.dp), labelFontSize = 32, ) { JafCheckBox( label = "", checked = stateData.chkboxDempyoUmu, onCheckedChange = { viewModel.onAction( JAFRSHO07040Action.OnDempyoUmu ) }, ) } } /** 取消理由 */ JafTextField( label = stringResource(id = R.string.txtbox_torikeshi_reason), labelModifier = Modifier.width(128.dp) .height(64.dp) .padding(vertical = 6.dp), labelFontSize = 32, isRequired = stateData.isActiveEnable, ) { JafText( modifier = Modifier .fillMaxWidth() .height(55.dp) .border( 1.dp, if (isSystemInDarkTheme()) { JafTableBorderDark } else { JafTableBorderLight } ) .padding(horizontal = 10.dp, vertical = 2.5.dp), textAlign = TextAlign.Start, text = stateData.lblTorikeshiReason, fontSize = 32.sp, ) } Row { Spacer( modifier = Modifier .width(208.dp) ) Box( modifier = Modifier .border( 1.dp, if (isSystemInDarkTheme()) { JafTableBorderDark } else { JafTableBorderLight } ) .height(410.dp) ) { /** 取消理由選択 */ LazyColumn( modifier = Modifier .fillMaxHeight(), state = lazyListState ) { itemsIndexed(stateData.lstboxTorikeshiReason) { index, item -> val rowColor = if (index % 2 == 0) { if (isSystemInDarkTheme()) { JafTableEvenBackgroundDark } else { JafTableOddBackgroundLight } } else { if (isSystemInDarkTheme()) { JafTableOddBackgroundDark.copy(0.1F, 255F, 255F, 255F) } else { JafTableEvenBackgroundLight } } Box( modifier = Modifier .height(63.dp) .border( 1.dp, if (isSystemInDarkTheme()) { JafTableBorderDark } else { JafTableBorderLight } ) .background(rowColor) ) { JafTextSelect( value = item.reason, rowModifier = Modifier.padding( horizontal = 10.dp, vertical = 5.dp ), fontSize = 32, overflow = TextOverflow.Ellipsis, onValueClick = { onItemClick(index) }, ) } } } if (stateData.lstboxTorikeshiReason.size > 5) { // スクロールバー JafVerticalScrollbar( modifier = Modifier .align(Alignment.CenterEnd), adapter = rememberScrollbarAdapter( listState = lazyListState, containerSize = 630f ), style = ScrollbarStyle( thickness = 10.dp, thumbColor = MaterialTheme.colorScheme.scrollBar, trackColor = if (isSystemInDarkTheme()) { Jaf191F53 } else { JafScrollBarDark }, showArrow = true, trackSize = 24.dp, autoHide = false ), bottomArrowModifier = Modifier.padding(bottom = 1.dp) ) } } } } } } }
09-28
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值